オンライン地図のベクトルデータにはSVG?それともCanvas?

これまで自然環境の調査には地図が重要だよねという名目のもと、地図画像→ラスター→GDAL関係の記事ばかりだったのですが、これからは地図に載せるデータの取得方法をなんとかしなければという気になっています。それで、Google Maps とか OpenLayersは、ベクトルデータをどのように扱っているのか調べました。


で、その結果ですが、ベクトルデータの描画にGoogle MapsCanvasで、OpenLayersSVGを利用しているということが分かりました。厳密に言うと「Google Maps は昔はSVGだったけど今はCanvasで、OpenLayersSVGを推奨しつつCanvasにも対応している」になります。CanvasSVGの違いは、PhotoshopIllustratorの関係と同じで、素直に考えれば地図データ用のベクトルデータはSVGがいいような気がします。OpenLayersでの比較検討結果もそのうようになっています。ただ、なんでGoogle先生は、SVGからCanvasに変更しちゃったの?と気になります。AndroidSVGに対応していなかったとかCanvasの方が速い(?)からとか推測されていますが、ほんとのところどうなんでしょう。


結局、今やりたいのは、スマートフォンのブラウザに地図を表示させて、そこで直接データを入力&編集したいので、やっぱりSVGを利用するということになるのでしょう。という結論でした。(とは言うものの↓の例にあるようにGoogle MapMarkerでは、Canvasでもきっちりベクトルデータの編集機能を実装してるからなぁ。でも面倒だよね、多分。。。)


できあがりイメージ(笑)
http://www.esrij.com/products/arcgismobile/features.html


Google Maps でのベクトル編集の例
http://www.ekelschot.eu/demo/maps/enableEditing.html
http://www.google.com/mapmaker ←いつのまにこんなものがGoogleOSM

OpenLayersでのベクトル編集の例
http://ole.geops.de/