วิธีทั่วไปในการแสดงข้อมูลภูมิศาสตร์จาก Postgis บนแผ่นพับคืออะไร


18

ตัวอย่างเช่นในฐานข้อมูลของฉันฉันมีบางจุดที่มีพิกัดทางภูมิศาสตร์ ฉันต้องการแสดงมันในเลเยอร์ Leaflet JS ฉันควรใช้เครื่องมือใด อาจมีบาง API ...


ยินดีต้อนรับสู่ GIS SE? คำถามของคุณจริง ๆ หรือไม่ "วิธีแสดงคะแนน PostGIS โดยใช้แผ่นพับ" ถ้าเป็นเช่นนั้นคุณสามารถแก้ไขคำถามของคุณเพื่อให้ชัดเจนขึ้นเพราะฉันไม่แน่ใจว่าคุณหมายถึงอะไรโดย "เครื่องมือ" ในบริบทนี้
PolyGeo

คำตอบ:


22

ในการรับข้อมูลจากฐานข้อมูลลงในเว็บเบราว์เซอร์คุณต้องใช้สคริปต์ฝั่งเซิร์ฟเวอร์ สิ่งนี้อาจเป็นเรื่องยุ่งยากเนื่องจากคุณต้องระวังช่องโหว่เช่นการฉีด SQL สิ่งสำคัญที่ควรทราบคือแนวทางปฏิบัติที่ดีที่สุดคือคุณควรใช้การสืบค้นแบบกำหนดพารามิเตอร์และตรวจสอบให้แน่ใจว่าผู้ใช้ฐานข้อมูลของคุณไม่ได้รับสิทธิพิเศษมีการเข้าถึงแบบอ่านอย่างเดียวในตารางที่คุณต้องการเผยแพร่สู่สาธารณะ

วิธีง่าย ๆ ในการเข้าถึง API กับฐานข้อมูลคือการใช้ซอฟต์แวร์เล็กน้อยเช่น GeoServer แต่นั่นเป็นแอปพลิเคชันขนาดใหญ่มากที่ใช้สำหรับปัญหาที่อาจเกิดขึ้นเล็กน้อย

อีกวิธีหนึ่งก็คือให้สคริปต์ฝั่งเซิร์ฟเวอร์ดัมพ์ข้อมูลไปยังไฟล์ GeoJSON เป็นระยะ ๆ ขึ้นอยู่กับความถี่ในการเปลี่ยนแปลงข้อมูลของคุณซึ่งอาจเป็นรายชั่วโมงรายวันรายสัปดาห์รายสัปดาห์ โปรดทราบว่าเว็บไซต์ของคุณอาจไม่ทำงานในขณะที่ไฟล์กำลังเขียน

อีกวิธีคือใช้ PHP หรือ Python เป็นสคริปต์ CGI เพื่อสร้าง API ของคุณเอง

ตัวอย่าง:

เมื่อคุณมี GeoJSON ไม่ว่าจะเป็นแบบไดนามิกหรือคงที่คุณสามารถโหลดได้ง่ายมากในการใช้แผ่นปลิว: http://leafletjs.com/examples/geojson.html


1
ขอบคุณสำหรับคำตอบ. ฉันอยากใช้ GeoJSON ตอนนี้ฉันต้องการใช้ไฟล์ CSV แทน Postgis เปลี่ยนเป็น geoJSON แล้วแสดงข้อมูลด้วย Leaflet
John Smith

1
ใช้ ogr2ogr อ่านcsvเพื่อแปลงเป็น geoJSON อย่างง่ายดาย
Jorge Sanz

1
หากข้อมูลของคุณใหญ่เกินไปและใช้เวลาโหลดนานเกินไปในฐานะ JSON ลองดูที่ TopoJSON github.com/mbostock/topojson
Alex Leith

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.