GeoJSON ile TopoJSON arasındaki fark nedir ve birini diğerine ne zaman kullanırdım?
GitHub üzerinde TopoJSON açıklaması TopoJSON dosyaları% 80 daha küçük olduklarını belirtecek. Öyleyse neden her zaman sadece TopoJSON kullanmıyorsunuz?
GeoJSON ile TopoJSON arasındaki fark nedir ve birini diğerine ne zaman kullanırdım?
GitHub üzerinde TopoJSON açıklaması TopoJSON dosyaları% 80 daha küçük olduklarını belirtecek. Öyleyse neden her zaman sadece TopoJSON kullanmıyorsunuz?
Yanıtlar:
Dosya boyutu veya topolojiye önem veriyorsanız, TopoJSON kullanın. İkisini de umursamıyorsanız, basitlik uğruna GeoJSON kullanın.
TopoJSON'un birincil avantajı boyuttur. Artıklığı ortadan kaldırarak ve koordinatların daha verimli sabit hassasiyetli tamsayı kodlamasını kullanarak, TopoJSON dosyaları genellikle GeoJSON dosyalarından daha küçük bir büyüklük sırasına sahiptir. TopoJSON dosyalarının ikincil avantajı, topolojiyi kodlamanın, topolojiyi koruyan basitleştirme ( MapShaper'a benzer ) ve otomatik ağ oluşturma ( bu örnekteki choropleth durum-durum sınırlarında olduğu gibi) gibi yararlı uygulamalara sahip olmasıdır .
Bu avantajların bir bedeli vardır: daha karmaşık bir dosya biçimi. JavaScript, örneğin, genellikle kullandığınız ediyorum TopoJSON istemci kitaplığı gibi standart araçlar ile kullanım için GeoJSON için TopoJSON dönüştürmek d3.geoPath . (Python'da, topojson.py'yi kullanabilirsiniz .) Ayrıca, TopoJSON'un tamsayı formatı, koordinatların nicelleştirilmesini gerektirir, bu da dikkatli değilseniz yuvarlama hatası verebileceği anlamına gelir. (İle ilgili belgelere bakın topojson -q
.)
Topoloji gerektirmeyen geometrilerin sunucu tarafında manipülasyonu için GeoJSON muhtemelen daha basit bir seçimdir. Aksi takdirde, topolojiye ihtiyacınız varsa veya geometriyi kablo üzerinden bir istemciye göndermek istiyorsanız, TopoJSON'u kullanın.
TopoJSON, idari bölgeler gibi birbirine "yapışan", ancak daha dağınık veya organik verilere yardımcı olmayan düzenli özellikler için idealdir. Verileriniz basitçe noktalardan ibaretse, TopoJSON hiç yardımcı olmaz.
Pek çok düşünceye bağlıdır. Bunlar arasında şunlar yer almaktadır:
1) Temsil etmek istediğiniz özelliğin veya özelliklerin doğası (veri modeli) 2) Bu özelliklerle ilişkilendirilmesini istediğiniz tüm özellikler 3) Bu özelliklerin sayfada nasıl davranmasını istediğiniz (statik ve dinamik)
Ancak, bu soyut olarak cevaplanması zor bir sorudur. Bazı özelliklerle ilgili olarak, bitişik bir çokgen kapsamınız varsa veya özelliklerin sınırları paylaştığı başka bir durum varsa, topojson'ın modeli artıklıktan yararlanmanıza ve bunu modele dahil etmenize izin verir.
Belgeleri okuyun, örnekleri inceleyin (ör. Bl.ocks.org) ve ardından bazı veriler alın ve bunları hem geojson hem de topojson'da temsil edin ve kendi görselleştirmelerinizi oluşturun.