GeoJSON’a kardeş geliyor : TopoJSON

Dün D3 ile başladığım yazıma gene D3’ün yaratıcısı Mike Bostock’tan GeoJSON’a kardeş olarak gelen TopoJSON ile devam etmek istedim. GeoJSON pekçok açık kaynak ya da ticari yazılım tarafından desteklenen ve GML’in tahtına aday olan bir format olmasına rağmen eksiklikleri de yok değil. GML’e göre çok hafif ve daha okunabilir bir yapısı olan GeoJSON’ın en büyük sıkıntısı belki de bir topoloji yapısının olmaması nedeniyle bitişik olan poligonlarda kendini tekrar etmesiydi. Bu tekrarlar nedeniyle de boyutta şişmeler olmaktaydı. Aslında hala GML’e göre hala hafif olan GeoJSON bu topoloji değişimine uğradıktan sonra daha da bir hafifledi. Yani anlayacağınız TopoJSON ile tekrar eden koordinatlar azaltılarak yeni ve daha hafif bir format oluşturuldu. Bu arada formatta daha farklı değişikliklerde var ama o konuya şu an değinmeyeceğim.

TopoJSON’ı değerledirmek için Türkiye İller verisini PostGIS üzerinde basitleştirerek gene PostGIS fonksiyonları ile GeoJSON olarak çıktısını aldım. Sonrasında uygun bir dönüştürücü ile TopoJSON’a çevirdim. 284 KB olan GeoJSON verisi TopoJSON’a çevrilince 72 KB oldu. Yani sonuç olarak %75’lik bir sıkıştırma ile aynı veriyi sunabilir hale geldik. Tabi bu veriyi sunabilmek için de standart harita kütüphaneleri henüz kullanılabilir değil. Bu nedenle gene D3 kütüphanesini kullandım.

Aşağıdaki adresten TopoJSON ve D3 kullanarak hazırladığım örnek uygulama ile veri boyutu da dahil olmak üzere 120 KB ile tüm Türkiye’nin illerini gösterebilir oldum. Açık Kaynağın gün geçtikçe bu kadar ilerlemesi ile Github gibi sosyal kodlama sitelerinin popülerliğinin artması bu tarz inovatif oluşumların önünü daha da fazla açacaktır diye düşünüyorum 🙂

Uygulama Adresi : http://www.mekansal.com/demo/topojson/

Türkiye İllerinin Hareketli Versiyonu (JavaScript ile)

Uzun zamandır farklı birşeyler yapmak istiyordum, haftasonu D3’ü keşfedip sonrasında GEO kütüphanelerinin de olduğunu görünce Amerika eyaletleri için yapılmış versiyonu neden Türkiye İlleri için çevirmeyeyim dedim ve yaptım 🙂

Uygulama illerin merkezlerini bulup bir nevi voronoi diagramı oluşturuyor. Sonra da sanki lastik ile bağlanmış gibi illeri birbirine bağlıyor. Açıkçası biraz uğraştırdı ama sonunda değdi diye düşünüyorum. Umarım sizler de beğenirsiniz. Uygulamaya aşağıdaki bağlantıdan ulaşabilirsiniz.

Uygulama Bağlantısı : http://www.mekansal.com/demo/d3/