togeojsonの3つの顔
ウェブ地図のベクトル面の展開加速に向けて、次の3つのライブラリを急ぎ押さえる必要がある。
TileStache, togeojson, Leaflet.draw
- TileStache(ベクトルデータにスケーラビリティを与える。マーカークラスターが届かないレベルのスケーラビリティを実現できる。)
- togeojson(既存のKML等のデータを、Geo+Webの現時点の「ネイティブ形式」であるGeoJSONに変換する)
- Leaflet.draw(ベクトルの入力を容易にする。これまでにも存在している技術であるが、最近の更新を抑えておくべきだろう。)
その他にマーカークラスター(Leaflet/Leaflet.markercluster · GitHub )も枢要な技術であるが、Leafletでの実装が十分に良いので、既に押さえきれているといえるだろう。その他、LeafletのLayer構造のリファクタリングも気になっているが、新しいバージョンが出るまで、LeafletのLayerの深いところをモンキーパッチすることを控えることで十分でであろう。
togeojsonの3つの顔
まずはtogeojsonの概要をおさえよう。レポジトリは次の場所にある。
mapbox/togeojson · GitHub
GPXとKMLをGeoJSONに変換するものである。作者の狙うところがよく表現されている。2位3位レベルのものを1位に集約することが意図されている。
このツールは非常に器用にできていて、3つの顔を備えているところが、逆にとっつきにくくしているところがあると思う。その3つの顔とは次の通り。
- コマンドラインツール(つまりデスクトップで動く)
- node.js のモジュール(つまりサーバサイドで動く)
- ブラウザライブラリー(つまりブラウザで動く)
togeojsonは、結局のところ過渡的なステージで動くことを想定したツールであり、そのステージがデスクトップであってもサーバであってもブラウザであっても動くように設計されているということかもしれない。