การเพิ่มชั้นข้อมูล Web Map Service (WMS) ที่เรียกจาก GeoServer แสดงผลบน Leaflet

ต่อจากบทความที่แล้วเรื่องการเพิ่มชั้นข้อมูลจาก PostGIS (table) ที่แสดงผลในรูปแบบของ GeoJSON หลายๆท่านก็จะมีคำถามว่าถ้าเรามีข้อมูลปริมาณมาก ๆ แล้วจะส่งผลทำให้การแสดงผลนั้นช้าลงหรือไม่ ซึ่งก็จะบอกได้เลยว่ามีผลอย่างมากเลยครับ โดยเฉพาะถ้าข้อมูลนั้นอยู่ในรูปแบบของ view ก็จะทำให้การแสดงผลนั้นช้ามากขึ้นอีก วันนี้ผมก็เลยจะลองอีกวิธีนึงซึ่งเป็นการเพิ่มชั้นข้อมูลที่อยู่ในรูปแบบของ WMS ที่ให้บริการด้วย GeoServer

การแสดงข้อมูลแผนที่จาก PostGIS ในรูปแบบ GeoJSON บน Leaflet

การแสดงข้อมูลแผนที่บน Leaflet นั้น ข้อมูลส่วนใหญ่จะอยู่ในรูปแบบ GeoJSON แต่ทีนี้ข้อมูลของผมเองนี้ดันอยู่ในรูปแบบของ Database ที่เป็นแบบ PostGIS ซึ่งข้อมูลจะเป็นลักษณะของตารางและเก็บค่า Geometry ไว้ อ้าวแล้วยังงี้จะต้องทำอย่างไรถึงจะแสดงบน Leaflet ได้หล่ะ ไม่ยากเลยครับเราเพียงแค่ใช้ PHP แปลงข้อมูลของเราให้อยู่ในรูปแบบ GeoJSON เท่านั้นเอง

การเรียก Web Map Service (WMS) จาก ArcGIS Server โดยใช้โปรแกรม QGIS

ก่อนหน้านี้ผมเคยเขียนวิธีการเรียก service จาก ArcGIS Server เข้ามาในโปรแกรม QGIS แต่ขั้นตอนมันจะซับซ้อนนิดหน่อย ดูวิธีที่ 1 และหลังจากนั้นผมก็เขียนปลั๊กอินเข้ามาใช้เองและคิดว่ามันน่าจะมีปุ่มเพิ่มให้ในโปรแกรมเองเลย ซึ่งเห็นใน mailing list เขาคุยกันพักนึง แล้วก็มีปุ่มนี้ขึ้นมาให้เราใช้แล้ว 🙂

วิธีแก้ไขปัญหาฟอนต์เป็นสี่เหลี่ยมหรือภาษาต่างดาวใน Google Earth

คงทราบกันดีว่า google earth เมื่อเวลาเราติดตั้งโปรแกรมลงในเครื่องเรานั้น ตัวหนังสือจะเป็นตัวเล็กมองไม่เห็นค่าพิกัดเลย ซึ่งผมมีวิธีแก้ไขได้แล้วครับ คลิกดูเลย! แต่เมื่อลองติดตั้งหลายเครื่องแล้ว ก็จะพบกับอีกปัญหาหนึ่งคือว่า ตัวหนังสือภาษาไทยจะเป็นสี่เหลี่ยมดังภาพด้านล่าง ซึ่งผมก็มีวิธีแก้ไขปัญหาคือดังนี้

การเรียกดูชื่อฟิวด์และประเภทของข้อมูล Shapefile ด้วย Python GDAL/OGR

หลายท่านคงเคยเจอปัญหาเช่นเดียวกันกับผมครับ เวลาเราต้องการที่จะทราบรายละเอียดของแต่ละฟิวด์(field) ซึ่งในโปรแกรม QGIS เราก็จะต้องคลิกขวา properties แล้วไปที่แถบเมนู Field

การ Intersects โดยใช้ PostgreSQL/PostGIS

การ Intersects ด้วยคำสั่งใน PostGIS ผมได้ยกตัวอย่างโดยการใช้ข้อมูลจุด (point) กับข้อมูลพื้นที่ปิด (polygon) ซึ่งถ้าไม่คิดอะไรมากเราก็สามารถใช้เครื่องมือ