GeoJSON برای نقشههای وب: یک راهنما
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 برای نواحی کوچک و متوسط (تا ۵۰ کیلومتر²) عالی کار میکند. برای پهنههای بزرگ:
- GeoJSON-Seq — قالب جریانی، فایل خطبهخط بارگذاری میشود.
- PMTiles — قالب کاشی بومی ابری با نمایش آنی میلیونها عنصر.
- کاشیهای وکتور — همگام با پیمایش روی نقشه بارگذاری میشوند.
ابزارهای کار با GeoJSON
- geojson.io — ویرایشگر آنلاین برای مشاهده و ویرایش.
- Mapshaper — سادهسازی هندسه و تبدیل.
- Turf.js — تحلیل مکانی مستقیماً در مرورگر.
- QGIS — یک GIS تمامعیار برای پردازشهای پیچیده.