世界の測量

Sibling of "Relevant, Timely, and Accurate, " but much lighter and shorter ※自らの所属する組織の見解を示すものでない

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は、結局のところ過渡的なステージで動くことを想定したツールであり、そのステージがデスクトップであってもサーバであってもブラウザであっても動くように設計されているということかもしれない。

ブラウザで使う場合に併用するもの

KMLXMLであるから、ブラウザで読み込む場合に何らかのライブラリの支援を受けることができる。レポジトリのREADMEでは、jQuery、reqwest、d3が例示されている。

※ちなみに、私は、togeojsonを扱うときには、坂本龍一のOut of Noiseに収録されたバージョンの to standord が脳内再生されることが多い。