GeoJSON สำหรับแผนที่เว็บ: คู่มือ
2026-03-02
GeoJSON — รูปแบบหลักในการแลกเปลี่ยนข้อมูลภูมิสารสนเทศบนเว็บ ไลบรารีแผนที่ยอดนิยมทั้งหมด — Leaflet, Mapbox GL JS, OpenLayers, deck.gl — รองรับ GeoJSON โดยกำเนิด ด้วย osm2cdr.ru คุณสามารถส่งออกพื้นที่ OpenStreetMap ใดก็ได้เป็น GeoJSON ภายในไม่กี่วินาที
โครงสร้างของ GeoJSON
ไฟล์ GeoJSON คือ JSON ธรรมดาที่มีวัตถุประเภท FeatureCollection แต่ละ Feature ประกอบด้วยเรขาคณิต (จุด เส้น รูปหลายเหลี่ยม) และคุณสมบัติ (properties) — แท็กของ OpenStreetMap: ชื่อ ประเภทของวัตถุ ที่อยู่ และแอตทริบิวต์อื่น ๆ
วิธีเชื่อมต่อกับ Leaflet
วิธีที่ง่ายที่สุดในการแสดง GeoJSON บนแผนที่เว็บ:
fetch('/data/moscow-buildings.geojson')
.then(r => r.json())
.then(data => L.geoJSON(data, {
style: { color: '#3388ff', weight: 1, fillOpacity: 0.3 }
}).addTo(map));
การจัดสไตล์ตามคุณสมบัติ
GeoJSON จาก osm2cdr.ru เก็บแท็ก OSM ไว้: highway, building, amenity, natural และอื่น ๆ ซึ่งช่วยให้จัดสไตล์วัตถุตามประเภทได้:
L.geoJSON(data, {
style: function(feature) {
if (feature.properties.building) return { color: '#e74c3c' };
if (feature.properties.natural === 'water') return { color: '#3498db' };
return { color: '#95a5a6' };
}
});
การปรับให้เหมาะสมสำหรับข้อมูลขนาดใหญ่
GeoJSON ทำงานได้ดีสำหรับพื้นที่ขนาดเล็กและขนาดกลาง (สูงสุด 50 ตร.กม.) สำหรับพื้นที่ขนาดใหญ่:
- GeoJSON-Seq — รูปแบบสตรีม ไฟล์โหลดทีละบรรทัด
- PMTiles — รูปแบบไทล์ cloud-native ที่แสดงวัตถุนับล้านได้ทันที
- ไทล์เวกเตอร์ — โหลดเพิ่มตามการเลื่อนดูแผนที่
เครื่องมือสำหรับการทำงานกับ GeoJSON
- geojson.io — โปรแกรมแก้ไขออนไลน์สำหรับการดูและแก้ไข
- Mapshaper — การลดความซับซ้อนของเรขาคณิตและการแปลง
- Turf.js — การวิเคราะห์เชิงพื้นที่ในเบราว์เซอร์โดยตรง
- QGIS — GIS เต็มรูปแบบสำหรับการประมวลผลที่ซับซ้อน