ArcGISのベクタータイルパッケージ(vtpk)の中身


はじめに

ArcGISでベクトルタイルをどのように消費しているか考える際の参考に、vtpkパッケージの中身を見てみました。
どこかのQ&Aでtpkはただのzipファイルと書いてあったので、vtpkもただのzipファイルだろうと考えて調べてみました。

つかったもの

  • ArcGIS Pro (2.6)で作ったvtpkファイル
  • 作業環境はWindows 10

手順

作成されたベクトルタイルパッケージの拡張子(.vtpk)を.zipに変更します。そのあと、zipファイルを解凍して中身を見ます。(ここではvtpkの作成については触れません。ArcGIS Proなどで作成できます。)

結果

解凍されたフォルダ(vtpkのファイル名)の中には、esriinfoというフォルダとp12というフォルダがありました。

esriinfo

esriinfoの中には、thumbnail/thumbnail.pngという画像(300×200 px)と、item.pkinfoとiteminfo.xmlというファイルが入っていました。画像以外のファイルはテキストエディタでみることができました。

p12

p12の方には、イメージとするとVectorTileServerでホストされるようなコンテンツが入っていました。具体的にはresources、tile、tilemapという3つのフォルダと、metadata.jsonとroot.jsonが入っていました。

resourcesフォルダの中には、fonts、info、sprites、stylesのフォルダがあって、それぞれVectorTileServerから提供されているような内容のファイルが置いてありました。

tileはベクトルタイルそのものがおいてあるところのようですが、L00、L01というようにズームレベルごとにフォルダがあり、それぞれのズームレベルの中に一つR0000C0000.bundleというファイルがありました。pbfファイルが並んでいるわけではないんですね。

tilemapフォルダにはroot.jsonが一つだけありました。ArcGIS REST APIではズームレベルや範囲を指定してtilemapをリクエストしているので、このroot.jsonから生成しているのだろうと想像します。

まとめ

vtpkの中身を確認しました。VectorTileServerの持っているであろう内容と近いのではないかという感想を持ちました。
また、vtpkの中でのベクトルタイルの持ち方(ズームレベルごとのbundleファイル)も確認できました。このbundleファイルはesriさん独自のものなのか、それともmbtiles形式のようなのかはまだわかりません。

おまけ(小ネタ・vtpkのダウンロード)

ArcGIS Onlineからvtpkをダウンロードしたいとき、ダウンロードボタンを押すと自動的にdownloadフォルダにダウンロードが始まってしまいます。時にこれを何とかしたいときがあります。vtpkは数十GBになるものもありますので、PowerShellでのダウンロードの小技メモしておきます。

  • ArcGIS Onlineを見ているときにF12(Google Chromeの場合)を押して、そのあとダウンロードボタンを試してみてvtpkのダウンロードパスを確認しておく。
  • PowerSchellでファイルを保存したいディレクトリに移動。
  • Powershellでダウンロードのコマンドを以下の通り実行。
curl.exe -o filename.vtpk -C - --retry 100 https://download-url.sample.abc/arcgis/sharing/rest/content/items/..../data

-C オプションは最初の時はなくても大丈夫です。ダウンロードを途中で止めて(止まって)再開したい時に使います。
(But, I saw "curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume.")