ベクター タイル、タイル ベクター、またはベクタイル[1]は、Web 経由で転送するために事前に定義されたほぼ正方形の「タイル」にパッケージ化された地理データのパケットです。これは、事前にレンダリングされたラスター マップ タイルの利点とベクター マップデータを組み合わせた、スタイル設定されたWeb マップを配信するための新しい方法です。広く使用されているラスタータイル ウェブ マップと同様に、マップ データは、事前に定義されたサイズと場所の正方形の土地領域に対応する一連の「タイル」としてクライアントによって要求されます。ただし、ラスター タイル ウェブ マップとは異なり、サーバーは事前にレンダリングされたマップ イメージではなく、各タイルの境界にクリップされたベクター マップ データを返します。
このハイブリッドアプローチには、いくつかの大きな利点があります。タイル化されていないベクターマップと比較すると、現在のビューポート内の現在のズームレベルのデータのみを転送する必要があるため、データ転送が削減されます。タイル境界が事前に定義されているため、 GISクリッピング操作はすべて事前に実行できます。つまり、タイル化されたベクターデータは、データを提供するためのGISシステムを必要とせずにパッケージ化および配布できます。
タイル化されたラスターマップと比較すると、ベクターデータは通常、レンダリングされたビットマップよりもはるかに小さいため、データ転送も大幅に削減されます。また、スタイリングはプロセスの後半で、またはブラウザー自体で適用できるため、データの表示方法の柔軟性が大幅に向上します。マップフィーチャーのベクター表現はクライアント内にすでに存在するため、インタラクティブ性を提供するのも簡単です。[2]さらにもう1つの利点は、ラスター化をクライアントで直接実行できるため、集中化されたサーバーの処理能力が少なくて済むことです。これにより、「レンダリング... ラストマイルの問題になり、高速で高品質のGPUが誰のポケットにも入る」と説明されています。[3]
歴史
GIS におけるベクター タイル スキームの使用には長い歴史があります。非常に初期の GIS (1966 年頃) であるカナダ地理情報システム(CGIS) では、限られたリソースのコンピューターがベクター マップ データに効率的にアクセスして処理できるようにするベクター タイル ストレージ スキームが使用されていました。[4] CGIS では、ベクター タイルの代わりに「フレーム」という用語が使用されていました。
1975 年、米国野生生物局は、米国のすべての湿地を地図化しデジタル化する国家プログラムを開始しました。1976 年に、解析ステレオ プロッターを使用してステレオ画像をデジタル化できるソフトウェア アプリケーションの開発契約を Autometric 社に授与しました。後に、デジタル化テーブルで 1 枚の写真 (別名、単一写真切除) から 2D デジタル化するためのサポートが追加されました。このソフトウェアは、WAMS (Wetlands Analytical Mapping System) と呼ばれていました。WAMS データ ストアは、タイル化されたベクター構造を使用しました。各タイルは「ジオユニット」と呼ばれていました。ジオユニットは、USGS 四角形スケールの 1 つ (通常は 1:24000) に対応していました。データがデジタル化されると、すぐにタイル化されたデータ ストアに格納され、トポロジ的に構造化されました。ジオユニット境界を横切る線は自動的に分割されました。 WAMSについては、「湿地分析マッピングシステム:WAMS」[Pywell and Niedzwiadek、1980]で詳しく説明されています。
WAMS の実装と使用、およびマップ オーバーレイおよび統計システム (MOSS) から得た運用経験を基にして、[5] 1986 年に Autometric 社は、強化されたタイル化およびインデックス化されたストレージとアクセス構造を実装した UNIX ベースの商用 GIS、DeltaMap (後の GenaMap) をリリースしました。タイル化構造の機能とインデックス スキームについては、「DeltaMap: Not just another GIS」で説明されています。[6] WAMS が緯度/経度 1:24000 四角形に基づく固定タイル システムを実装したのに対し、DeltaMap では、ユーザーが任意の座標参照システム (CRS) で任意のサイズのタイルを定義できました。このように、スパース データには少数のタイルしか必要ありませんが、高密度データにははるかに小さいタイルを使用できます。ベクター タイルのインデックス スキームとして R ツリーが使用されました。さらに、以前のタイリング実装とは異なり、DeltaMap/GenaMap は、2D および 2.5D ベクターとフィーチャ データ、衛星画像、DEM などの 3D グリッド、注釈など、あらゆる地理空間データ タイプに同じタイリングおよびインデックス スキームを使用しました。1980 年代後半、Genasys は GenaMap をさらに強化し、タイル レイヤーの「連続的でシームレスな」処理を可能にしました。基本的に、エンド ユーザーの観点からは、タイルが見えなくなりました。この機能は、ユーザーがデータを編集、視覚化、クエリ、または分析しているかどうかに関係なく有効でした。
標準とアプローチ
2015 年初頭現在、ベクター タイルの標準的な標準はありません。URL 形式、データのシリアル化形式、スタイル情報のパッケージ化、Web メルカトル以外の投影法のサポートなど、アプローチはさまざまです。
プロトコル バッファ (Mapbox)
Mapbox は、Google プロトコル バッファを使用してスペース効率の高いデータ シリアル化を行う「vector-tile-spec」と呼ばれるベクター マップ タイルのオープン スタンダードを定義しました。Webメルカトルが基準の投影法ですが、ベクター タイルは任意の投影法とタイル範囲スキームでデータを表すために使用できます。[7]また、 Mapnikレンダリング エンジンにも結び付けられており、「Mapnik が使用する内部データのシリアル化バージョン」を使用しています。[8]
2015年3月、地理空間ソフトウェアの主要メーカーであるEsriは、サーバーとクライアントの両方のプラットフォームでMapboxのベクタータイル標準をサポートすることを発表しました。[9]
Mapnik ベクター タイル
これはMapnikレンダラー用に開発された初期のフォーマットでした。[10]
その他の形式
TileStache が採用しているアプローチは、複数のデータシリアル化形式を許可することです。2015 年初頭の時点で、GeoJSON、ArcJSON、GeoBSON、Arc GeoServices BSON、GeoAMF、Arc GeoServices BSON をサポートしています。要求された形式は URL で指定されます (例: http://example.com/tiles/mylayer/2/1/3.json)
サポート
サービスとアプリケーション
ベクタータイルは、2010年12月からGoogleマップのAndroidクライアントで使用されており[11]、デスクトップクライアントでは2013年から使用されています[12]。OpenStreetMapデータのレンダリング 用のベクタータイルは、 2013年3月に初めて提案され[1]、OpenStreetMapデータの最も広く使用されているレンダラーであるMapnik [ 13]によってサポートされています。カスタム地図作成ツールとホスティングの商用プロバイダーであるMapboxは、ベクタータイルを中心とした地図作成ツールであるMapbox Studioに重点を置いています。[14]
人気があり、非常に強力なOpenStreetMapデータ用のAndroidクライアントであるosmAndは、「ベクターマップ」と呼ばれるベクタータイルをサポートしています。[15]
サーバー
タイルサーバーパイプラインTileStacheは、ネイティブでいくつかの種類のJSONをサポートしています。[16]また、VecTiles [17]と呼ばれるプラグインベクタータイルプロバイダーもあり、 PostGISデータをMapnikベクタータイル形式(Mapbox仕様[18]とは互換性がありません)またはTopoJSONのベクタータイルに変換します。
PGRestAPI(Chubbs Spatial Serverとも呼ばれる)はスタンドアロンのNodeJSサーバーであり、PostGISデータソースからベクタータイルをオンザフライで生成したり、Mapbox Studioなどのソースから事前に生成されたベクタータイルを提供したりすることもできます。[19]
pg_tileservはGo言語で書かれたオープンソースのPostGIS専用タイルサーバーであり、HTTPタイルリクエストとフォームを受け取り、SQLを実行します。[20]
2016年2月にリリースされたESRI ArcGIS Server 10.4 [21]およびArcGIS Pro 1.2 [22]では、ベクタータイルへのサポートが追加されました。
クライアントライブラリ
Leaflet JavaScriptライブラリはベクタータイルを直接サポートしていませんが、サードパーティ製のベクタータイル用プラグイン、Leaflet 0.7.x用のLeaflet.MapboxVectorTile [23]とLeaflet 1.0.x用のLeaflet.VectorGrid [24]があります。
Mapbox独自のJavaScriptライブラリであるMapbox GL JSを使用することができます。[25]
OpenLayersはバージョン3以降 、ol.source.VectorTileオブジェクト[26]を通じてベクタータイルをサポートしています。
外部リンク
- ベクター タイル (OpenStreetMap wiki)
- Mapbox ベクタータイル仕様
- OpenMapTiles プロジェクト
参考文献
- ^ ab 「postgreslessness の自由: mapnik のタイル化されたベクトル (tecznotes)」。 mike.teczno.com 。 2014 年 8 月 24 日閲覧。
- ^ ab 「Tiled Vectors について」。research.microsoft.com。2014年 8 月 24 日閲覧。
- ^ ミグルスキー、ミハル (2013-04-01)。 「Geomeetup スライド 2013-04」(PDF)。
- ^ 「地理情報システム入門書」CRC Press 。 2016年4月26日閲覧。
- ^ モス:歴史的視点 https://www.scribd.com/document/4606038/2004-Article-by-Carl-Reed-MOSS-A-Historical-perspective
- ^ Reed CN (1986) DELTAMAP: 単なる新しい GIS ではない - 空間データ処理に関する第 3 回国際シンポジウム議事録。IGU 地理データセンシングおよび処理委員会、ニューヨーク州ウィリアムズビル、pp. 375-83
- ^ "vector-tile-spec/2.1 at master · mapbox/vector-tile-spec · GitHub". github.com . 2016年5月24日閲覧。
- ^ 「ベクター タイルの概要」。Mapbox。2015 年 3 月 18 日時点のオリジナルよりアーカイブ。2015 年 3 月 12 日閲覧。
- ^ 「Mapbox ベクター タイル仕様が Esri に採用」。Mapbox ブログ。2015 年 3 月 17 日。
- ^ 「Python: module TileStache.Goodies.VecTiles.mvt」. tilestache.org . 2015年11月20日閲覧。
- ^ 「Android 向け Google マップ 5.0 の仕組み - 公式 Google モバイル ブログ」。googlemobile.blogspot.com.au。2014年 8 月 24 日閲覧。
- ^ 「再設計された Google マップのハンズオン: ベクターベースでよりパーソナルになり、モバイルにも近日登場」 engadget.com。2013 年 5 月 16 日。2014年 8 月 24 日閲覧。
- ^ "mapbox/mapnik-vector-tile · GitHub". github.com . 2014年8月24日閲覧。
- ^ 「MapBox Streets 用ベクター タイル | Mapbox」。mapbox.com。2014年 8 月 24 日閲覧。
- ^ 「HowToVectorTileData - osmand - この記事では、主な機能の使用方法を説明します - オフラインおよびオンライン OSM マップのグローバル モバイル マップ表示とナビゲーション - Google プロジェクト ホスティング」 。2014年 8 月 24 日閲覧。
- ^ 「TileStache.Vector」。
- ^ 「TileStache.Goodies.VecTiles.server」。
- ^ 「Protobuf.skip 未実装型 · Issue #15 · SpatialServer/Leaflet.MapboxVectorTile」。GitHub。2015年11 月 20 日閲覧。
- ^ 「PGRestAPI (別名 Chubbs Spatial Server)」。GitHub。2015-02-25。
- ^ 「PostGIS 用の pg_tileserv」。
- ^ 「ArcGIS 10.4 がリリースされました!」 2016 年 2 月 18 日。
- ^ 「ArcGIS Pro 1.2 の新機能 - ArcGIS Pro | ドキュメント」。
- ^ 「Leaflet.MapboxVectorTile」。GitHub。2015年2月12日。
- ^ 「Leaflet.VectorGrid」。GitHub。2017年2月16日。
- ^ 「APIドキュメント」。Mapbox。
- ^ 「Open Layers VectorTile ドキュメント」。
