標高タイル、ベクトルタイル、また標高タイルを包含する三次元タイルについて、GitHub をツールとして用いたオープンソース実装による仕様の収斂が進んでいるように観測される。
産総研がかねてより提唱していた「PNG標高タイル」と非常に類似性の高い標高タイルが、Mapzen 社により提唱されている。Mapzen 社は世界全体を覆う標高タイルサービスも提供している。
- Mapzen: Mapping Mountains https://mapzen.com/blog/mapping-mountains/
- Mapping Mountains by Mapzen (標高タイルサービス) https://mapzen.com/blog/elevation/
- PNG標高タイル 産業技術総合研究所 シームレス地質情報研究グループ http://gsj-seamless.jp/labs/elev/doc/png_elev_tile.html
地理院は、PNG標高タイルとまったく同じコンセプト(「画像タイルに対してピクセルパーフェクトな標高データ」)でエンコードのみ違う、CSV形式の標高タイルを従前からリリースしており、エンコード変更でいつでも合流可能な技術的状態になっている。
なお、同じタイルの方式を使うが、タイル内部の表現を「ピクセルパーフェクトの配列」ではなくて「不整三角網(TIN)」にした仕様として、quantized-esh がある。3D表現のためには明らかに性能が優れているし、仕様自体はオープンソースであるが、データの作成に独特のノウハウがあると考えている。
- 共通点は、slippy map tilenames よって分割されたタイルのピクセルごとに値を割り当てるという考えをとること。
- 地理院標高タイルは CSV テキスト形式であり、産総研PNG標高タイルとMapzen PNG標高タイルは、標高値をPNGの画素に割り当てる。
- Mapzen PNG標高タイルは、(red * 256 + green + blue / 256) - 32768、産総研標高タイルはRGB値(r,g,b)をこの順に並べて24bit符号付き整数として解釈し整数値を得え,この値にデータセット毎に定めらえた標高分解能u(単位m)をかけて標高値h(単位m)とする。つまり、微妙な違いがある。
Mapbox 社が提唱している Mapbox Vector Tiles (.mvt) 方式が、フォーマット名称に会社名を含むことに対する抵抗感など伴いながらも普及している。esri 社がサポートに踏み切ったことが大きい。なお、ベクトルタイルの採用は、ブラウザにおけるジオデータのレンダ系が SVG から WebGL に変わっていくことと合わせて行われることが多く、その点も興味深い。
- https://www.mapbox.com/vector-tiles/
- https://www.mapbox.com/blog/vector-tile-adoption/
- https://github.com/mapbox/vector-tile-spec
- https://github.com/mapbox/awesome-vector-tiles
競合ではないと思いますが、バリエーションがあります。例えば、より不定形であったりタイル化されていなかったりするデータについてバイナリ化する、より簡易なフォーマット geobuf https://github.com/mapbox/geobuf があります。
Shapefile 形式や GeoJSON 形式は、思想は違いますがシェアという意味では競合かもしれません。
WebGL は graphics library つまりソフトウェア仕様ですが、タイルはデータのパーティション方法だと認識しています。
タイル地図で標高を含む3D表現がデフォルトになったか、というところは微妙かもしれず、Apple、Google、地理院は3D表現に手をつけていますが、例えば Yahoo! や Mapion はウェブでの3D表現には手を付けていないと認識してます。(Yahoo!はアプリで3D表現をしています http://internet.watch.impress.co.jp/docs/news/610805.html )
3D Tiles は複数のパートからなる仕様、という体裁となっており、その部分が分かりにくいですが、3D Tiles の仕様にはベクトルが含まれています。ただし、3D Tiles の部分としての vector は mvt と同一ではないことになるようです。3D Tiles の vector data については https://github.com/AnalyticalGraphicsInc/3d-tiles/blob/master/TileFormats/VectorData/README.md に記載されるようですが、まだユースケースの分析と簡単な方向性の記述にとどまっているようです。
自分の勉強もかねて、https://github.com/AnalyticalGraphicsInc/3d-tiles#spec-status に記載の、3D Tiles の仕様の構成を引き写してみますと次のとおりです。
- tileset.json
- Batched 3D Model (b3dm)
- Point Cloud (pnts)
- Composite (cmpt)
- Instanced 3D Model (i3dm)
- Vector data ***
- Declarative styling
- OpenStreetMap
- Massive Mode
- Terrain ***
- Stars
ここでの 10. Terrain は、quantized-mesh を想定しているようです。(もともと、quantized-mesh は AGI が開発した仕様でもあります。)
この分野にいる一技術者の持つイメージとしても、そのように思います。一方で、まさにそのような評価に対抗するために、esriもオープンソース・オープンデータへの注力を見せています。特にワシントン方面でesriのオープンへの投入が目立っているようです。
http://www.esri.com/software/open
Mapbox の普及活動は、常に「実装の提供」によるように感じています。JavaScript ベースの API を提供し、素敵なサンプルを作り、ブログで展開する、ということを常にやられている気がします。
最近、似たようなアプローチで当該分野の技術者の人気を集めている会社としては、cartodb があるように見えています。
- esri がこのサブ分野で競合の独自技術を持っていなかったこと。
- 標準化団体がこのサブ分野で競合の仕様を持っていなかったこと。
Cesium を提供する AGI (Analytical Graphics, Inc.) 社から、三次元タイルが提唱されてきている。標高タイルも包含する仕様になる予定であるが、三次元タイルの主眼は三次元モデルのタイル化にある。
プルリクエストにはオープンであるが、この分野の自社の技術力には絶対の自信があるので、実装のリード又はGitHub上の議論の支配を通じて、主導権は確保できる、という方針を持っているように分析しています。
上述のように、かなり莫大な仕様案であり、オープンにされていることと、このサブ分野では、かなり高度な計算幾何学系のノウハウが必要そうなため、競合仕様の姿は見えていません。AGIの強みは、データモデルとビジュアライゼーションを同時に考える能力を持つことではないかと思います。データモデルのみであれば、CityGML などもありますが、ビジュアライゼーションのためにデータをパーティションする(タイル化する)、効率的に符号化する、といった発想は、データモデルのみを考えるプレイヤーには持ちづらいようです。