SVG Mapの描画性能
先日の格納効率の記事に続き、描画性能の比較を行ってみました。
使用したデータは、
- 地球地図起源の日本の海岸線

SVG:0.9MB, GeoJSON: 1.6MB, KML: 2.3MB - 地球地図起源の日本の道路

SVG: 10MB, KML: 29MB - 地球地図起源のオーストラリアの河川

SVG: 54MB
このうち、1と2は先日の記事でも使用したデータです。(ただし、属性データは除いてあります)
使用した環境は、以下になります。
| SMT | SVG Map Toolkit 0.6 |
| FFX | FireFox3.0.1 |
| OPR | Opera9.5 |
| ASV | Adobe SVG Viewer 3.0 |
| REN | Renesis Player 1.0 |
| OLI | OpenLayers 2.6 / Internet Explorer6 |
| OLO | OpenLayers 2.6 / Opera9.5 |
| OLF | OpenLayers 2.6 / FireFox3.0.1 |
| GMI | Google Maps / Internet Explorer6 |
| GEO | Google Earth 4.3 |
なお、全てPentium M 1.1GHz 768MB WindowsXP(JP)上で動作させています。
1のデータの測定結果(以下、単位は全て[秒])
| SVG | GeoJSON | KML | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| SMT | FFX | OPR | ASV | REN | OLI | OLO | OLF | OLI | GMI | GEO |
| 0.6 | 1.5 | 1.2 | 1.7 | 0.7 | Hang up | 9 | 11 | Hang up | Stall | 2.5 |
2のデータの測定結果 (OpenLayersとGoogleMapsには脱落してもらいました)
| SVG | KML | ||||
|---|---|---|---|---|---|
| SMT | FFX | OPR | ASV | REN | GEO |
| 2 | 19 | 11 | 17 | 6 | 43 |
3のデータの測定結果 (KMLには脱落してもらいました)
| SVG | ||||
|---|---|---|---|---|
| SMT | FFX | OPR | ASV | REN |
| 11 | 51 | 34 | 48 | 17 |
SVG Map Toolkitは、地図データの描画性能に着目してチューニングされているので、最も高速に処理できています。
一方、予測はしていましたが、javascriptでコーディングされたビューア(OpenLayersやGoogleMaps)の性能はネイティブコードのビューアには遠く及びません。様々なリソースを多く消費しているようで、動作も不安定です。"1" 程度のベクトルデータの描画は一般的にこなせる必要が有ると考えています(ZIP圧縮形式".svgz"にすれば、現代のwwwではごく普通のファイルサイズになります)が、普及しているPCのレベルではかなりきびしいようです。