4 คะแนน โดย GN⁺ 2023-08-24 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Prettymapp เป็นทั้งเว็บแอปและแพ็กเกจ Python สำหรับสร้างแผนที่จากข้อมูล OpenStreetMap รองรับการสร้างแผนที่ทั้งในแอป Streamlit และจากโค้ด Python
  • เป็นโปรเจกต์ที่เขียน prettymaps ขึ้นใหม่ โดยเน้นการตั้งค่าที่เหมาะกับอินเทอร์เฟซเว็บแอปและความเร็ว
  • เลือกลดตัวเลือกการตั้งค่าที่ซับซ้อนมากขึ้น ปรับปรุงความเร็ว ลดความซับซ้อนของโค้ด และใช้อินเทอร์เฟซการตั้งค่าที่เรียบง่ายขึ้น โดยมีการทดสอบบางส่วนและเพิ่มคอมโพเนนต์เว็บแอป Streamlit
  • เว็บแอปใช้งานได้ทันทีที่ prettymapp.streamlit.app และเมื่อรันแบบโลคัล ให้ใช้ uv sync --extra streamlit แล้วตามด้วย uv run streamlit run streamlit-prettymapp/app.py
  • ติดตั้งแพ็กเกจ Python ด้วย pip install prettymapp และใช้ get_aoi, get_osm_geometries, Plot, STYLES เพื่อกำหนดพื้นที่ ดาวน์โหลดข้อมูล OSM เรนเดอร์แผนที่ และบันทึกรูปภาพ
  • สไตล์พื้นฐานมี 4 แบบคือ Peach, Auburn, Citrus, Flannel และสามารถปรับสไตล์กับเลย์เอาต์ได้ด้วย draw_settings รวมถึงอาร์กิวเมนต์ของ Plot เช่น shape, contour_width
  • สามารถพล็อตไฟล์ OSM XML ที่ส่งออกจาก openstreetmap.org เป็นต้นได้ด้วย get_osm_geometries_from_xml และเปลี่ยนการเลือกคลาส OSM landcover ที่จะแสดงได้ผ่านการตั้งค่า LANDCOVER_CLASSES

1 ความคิดเห็น

 
GN⁺ 2023-08-24
ความคิดเห็นจาก Hacker News
  • สำหรับคนที่อยากปรับแต่งแผนที่ OSM เอง ปลั๊กอิน Figma สำหรับนำเข้าข้อมูล OSM มีประโยชน์: https://www.figma.com/community/plugin/1251030017228239072/V...
  • ในเมื่อแอปตัวอย่างอยู่ในสถานะถูกปฏิเสธการให้บริการ เลยลองนำไป deploy บน Streamlit เองทั้งที่ไม่เคยใช้มาก่อน แม้โปรเจกต์จะไม่ได้มีเอกสารขั้นตอน deploy ไว้ แต่ใช้แค่เอกสารระดับบนก็ง่ายมาก
    ลองใช้งานเองได้ที่: https://wfcmzortl5n8cqhdowr6dm.streamlit.app/
    • ตอนรันในเครื่อง ทำแบบนี้
      pip install -r requirements.txt
      pip install -r requirements-dev.txt
      pip install -r streamlit-prettymapp/requirements.txt
      streamlit run streamlit-prettymapp/app.py
      คำสั่ง streamlit ถูกติดตั้งโดย requirements.txt ตัวที่สาม แผนที่ Macau แสดงได้ถูกต้อง แต่ค้างอยู่ที่ Creating map... (may take up to a minute) เลยสงสัยว่า OSM API key ไม่ทำงานหรือเปล่า
      แก้ไข: ดูเหมือนว่าพื้นที่ที่มีองค์ประกอบ OSM ค่อนข้างมากจะช้ามากเฉย ๆ จริง ๆ แล้วค้างอยู่ในขั้นตอนแปลง OSM เป็นวัตถุเรขาคณิต โดยพยายามแปลงวัตถุ 400,000 ชิ้น
      แก้ไข 2: https://github.com/chrieke/prettymapp/issues/26
    • อยู่ได้ไม่นานเลยนะ
    • ที่นี่ก็ตายเพราะ ทราฟฟิกถล่ม เหมือนกัน ;)
  • ยอดเยี่ยมจริง ๆ อยากรู้ว่ามี เอกสาร API ไหม ถ้าจัดแผนที่ให้มีศูนย์กลางตามตำแหน่ง GPS แทนชื่อเมือง/หมู่บ้านได้ก็น่าจะดี
    ถ้าใช้ชื่อเมืองของผม มันจะใช้ใจกลางเมืองเป็นค่าเริ่มต้นที่สมเหตุสมผล แต่บ้านผมอยู่ไกลจากตรงนั้นพอสมควร จึงไม่ปรากฏบนแผนที่เว้นแต่จะซูมออกเยอะมาก
  • เคยถูกพูดถึงหลายครั้งแล้วก่อนหน้านี้: https://hn.algolia.com/?q=Prettymap
    • ตาม README ระบุว่า Prettymapp อิงจากการเขียนใหม่ของโปรเจกต์ prettymaps อันยอดเยี่ยมของ @marceloprates
  • มีใครรู้ชัดเจนไหมว่าเผยแพร่ภายใต้ไลเซนส์อะไร? ต้นฉบับเป็น AGPL แต่ถ้าเวอร์ชันที่เขียนใหม่ใช้ไลเซนส์ที่ผ่อนปรนกว่านี้ก็น่าจะดีมาก
    • ดูเหมือนเป็น MIT: https://github.com/chrieke/prettymapp/blob/main/setup.py#L15...
    • ต้นฉบับเป็น AGPL ส่วนเวอร์ชันใหม่เป็น MIT แต่สงสัยว่าทางกฎหมายทำได้หรือไม่
      ไม่แน่ใจว่านี่เป็นการเขียนใหม่จริง ๆ หรือเป็นแค่การดัดแปลง อาจเปลี่ยนไลเซนส์ไม่ได้ จึงควรระวัง
    • ทำไมถึงเป็นเรื่องที่ดีมากล่ะ?
  • เหมือนเครื่องมือสร้างร้าน Etsy เลย
  • เป็นแอปที่น่าสนใจ เมื่อก่อนผมก็ชอบปรับแต่งแผนที่ใน Ortelius มาก ก่อนที่มันจะหายไป และ Felt ของ felt.com ก็ดีเหมือนกัน
  • MapTiler มีบริการ SaaS ที่ดี เราใช้แผนที่เวกเตอร์ของพวกเขาร่วมกับ MapLibre
    เป็นบริษัทที่ดีที่พยายามสร้างธุรกิจจากเครื่องมือและแผนที่ที่ดีในสายนี้ และยังมีส่วนร่วมกับโอเพนซอร์สอย่างมาก เครื่องมือหลายตัวเป็นโอเพนซอร์สจึงโฮสต์เองได้ ในเว็บไซต์ก็มีตัวอย่างแผนที่แบบมีธีมที่ทำออกมาค่อนข้างดี
  • น่าสนุกที่ได้เห็นแนวคิดบางอย่างที่ผู้คนต้องการถูกนำไปใช้งานในรูปแบบอื่น
    เคยคาดหวังว่า functional programming แบบกระแสหลักจะเป็น OCaml/Haskell แต่จริง ๆ กลายเป็น React ซึ่งเป็นไลบรารี JavaScript ที่มีลักษณะเชิงฟังก์ชัน และเคยคาดหวังว่า immediate mode GUI จะเป็น imgui แต่เหมือนมันมาในรูปแบบ Gradio/Streamlit แทน แม้จะยังไม่เคยลองใช้เอง แต่ดูคร่าว ๆ แล้วรู้สึกแบบนั้น
  • HN ทำแอปตายไปแล้ว!