Prettymapp - สร้างแผนที่ด้วยข้อมูล OpenStreetMap ในเว็บแอป Streamlit
(github.com/chrieke)- 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 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ลองใช้งานเองได้ที่: https://wfcmzortl5n8cqhdowr6dm.streamlit.app/
pip install -r requirements.txtpip install -r requirements-dev.txtpip install -r streamlit-prettymapp/requirements.txtstreamlit 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
ถ้าใช้ชื่อเมืองของผม มันจะใช้ใจกลางเมืองเป็นค่าเริ่มต้นที่สมเหตุสมผล แต่บ้านผมอยู่ไกลจากตรงนั้นพอสมควร จึงไม่ปรากฏบนแผนที่เว้นแต่จะซูมออกเยอะมาก
get_aoiสามารถใช้ พิกัด แทนที่อยู่ได้https://github.com/chrieke/prettymapp/blob/main/prettymapp/g...
ไม่แน่ใจว่านี่เป็นการเขียนใหม่จริง ๆ หรือเป็นแค่การดัดแปลง อาจเปลี่ยนไลเซนส์ไม่ได้ จึงควรระวัง
เป็นบริษัทที่ดีที่พยายามสร้างธุรกิจจากเครื่องมือและแผนที่ที่ดีในสายนี้ และยังมีส่วนร่วมกับโอเพนซอร์สอย่างมาก เครื่องมือหลายตัวเป็นโอเพนซอร์สจึงโฮสต์เองได้ ในเว็บไซต์ก็มีตัวอย่างแผนที่แบบมีธีมที่ทำออกมาค่อนข้างดี
เคยคาดหวังว่า functional programming แบบกระแสหลักจะเป็น OCaml/Haskell แต่จริง ๆ กลายเป็น React ซึ่งเป็นไลบรารี JavaScript ที่มีลักษณะเชิงฟังก์ชัน และเคยคาดหวังว่า immediate mode GUI จะเป็น imgui แต่เหมือนมันมาในรูปแบบ Gradio/Streamlit แทน แม้จะยังไม่เคยลองใช้เอง แต่ดูคร่าว ๆ แล้วรู้สึกแบบนั้น