はじめに
本エントリーは ベクトルタイル Advent Calendar 2021 4日目の記事です。
Mapbox、Maptiler、Esri 社の ArcGIS がクラウドサービスとして、ベクトルタイルの作成や配信などができる地図プラットフォームを提供しています。今回は、各社のプラットフォームに触ってみましたので、各社の特徴や自分なりの見解について紹介したいと思います。地図プラットフォームとて、近年はベクトルタイルに限らず、3D データなどの扱いも増えており、多様なデータフォーマットに対応しているなど、クライアントに求められるニーズも多様化しています。各社得意な領域などもあるかと思いますが、今回はベクトルタイルにフォーカスして紹介します。
Mapbox について
ベクトルタイルの先導者としては、やはり Mapbox でしょうか。ベクトルタイルの仕様策定含めて、各社もMapbox の仕様を採用するなど、業界でも標準となっている仕様です。
Mapbox がデータの登録や配信などの地図プラットフォームとして提供しているのが、Mapbox Studio というサービスです。個人的にも大好きです。
Mapbox Studio は、地理空間データを管理し、カスタム マップ スタイルを設計するための Mapbox アプリケーションです。Mapbox Studio を使用して、独自のデータをアップロードおよび編集したり、Mapbox が提供するタイルセットを利用したり、カスタム フォントやアイコンを追加したり、内蔵のテンプレート マップ スタイルを改良したりして、正確な仕様のマップを構築およびデザインすることができます。Mapbox Studioを使えば、データの管理やデザインのコントロールが簡単にできます。
使い方などの詳細は以下のガイドを参照していただければと思います。
Mapbox Studio の特徴としては、地図のデザインはもちろんですが、ベクトルタイルで使用する MBTiles の対応や GIS で扱うデータフォーマットに対応しているところかなと思います。
登録できるデータ対応の特徴として、編集可能なデータの場合は、dataset と呼ばれる機能で対応します。GeoJSON などの編集したい場合は、こちらを使用します。Mapbox Studio 上で編集ができるたりできます。
編集はできないが、ベクターデータなどのタイルセットや大きいファイルサイズなどの場合はこちらを使用します。MBTiles などもこちらに該当します。
今回は、試しに Maptiler のサービスを使用してみました。OpenStreetMap のベクタータイルがダウンロードできるため、日本エリアで名古屋地区の MBTiles をダウンロードして使用しました。
ダウンロードした名古屋地区の MBTiles を Tilesets からアップしてみました。データが反映されると以下のように Mapbox Studio からスタイルの編集など、オリジナルの地図を作成することができます。
あとは、Mapbox Studio で作成した地図などは、Mapbox GL JS などのクライアントライブラリを使用して、地図サービスとして使用したりなど、アプリとして提供もできます。
その他、Mapbox Studio などを使用した方法などについては、過去にも以下の記事でも紹介していますので、ご覧いただければと思います。
freedom-tech.hatenablog.com
Maptiler について
次に Maptiler です、Maptiler ですが、サービスは知っていましたが、今回本格的に触ったのが初めてです。Mapbox と競合の位置付けのようですね、オープンソースのプロジェクトとしても多くのサービスを提供しているようです。まだ、サービス全体などが把握できていませんが、地図のデータホスティングサービスとして、クラウドやオンプレミスのサービスがあるようです。
ベクトルタイルの配信サーバーとして、MapTiler Server や クライアントライブラリの MapLibre GL JS などがあります。
地図データの登録や配信などの地図プラットフォームとして提供しているのが、maptiler CLOUD というサービスです。地図をカスタマイズし、独自の地理データをアップロードし、それを作成して、オンラインで公開することができます。
こちらもサービスは無償から利用することができ、取り扱うことができるファイル仕様などは、Mapbox と同じようです。データの位置付けとしても dataset と tileset とあり、GeoJSON や MBTiles などのデータをアップすることができます。ただ、無料アカウントだと制限があるみたく、無料アカウントの場合、タイルのアップロードは1回のみだそうです。無料アカウントでも Mapbox Studio の方が色々と使い勝手が良さそうな印象です。
ここでは、国土数値情報 | 医療機関データ の岐阜県のデータを登録してみました。データサイズや座標系など色々と制限はあるようですが、今回は、dataset からシェープファイルをアップしてみました。ベクタータイルが作成されて地図に表示されます。
こちらもMapbox Studio と同じように Maptiler で作成した地図などは、Mapbox GL JS などのクライアントライブラリを使用して、地図サービスとして使用したりなど、アプリとして提供もできます。
また、データには、API key を使用してアクセスする仕組みのようです。 https://api.maptiler.com/data/13d6bc11-ab6c-436c-8786-0ecb0290083a/features.json?key=CcJUVEOctYTDx9FenEvG
ArcGIS について
ArcGIS については以前に以下の記事でも紹介しましたが、Mapbox や MapTiler と同様にベクタータイルにも対応しています。ArcGIS の場合、データをアップするとフィーチャ サービスと呼ばれるサービスが作成されます。ベクタータイルは、作成したフィーチャ サービスからベクタータイルを作成することができます。このあたりの作成するステップについては、以前の記事でも紹介しています。
フィーチャ サービスは、REST API 形式で配信されます。REST API で配信されるため、ArcGIS 以外のサービスからもアクセスすることができます。また、これが便利なところは、クエリーと呼ばれるデータの検索やさらにデータの編集も行うことができるため、動的なデータを扱う上では便利です。
また、こちらの記事も参考になります。
developers.arcgis.com
ArcGIS で扱えるデータに関しては、Mapbox や MapTiler と同じで CSV、XLS、GeoJSON、Shapefile 及びその他の形式でデータをアップすることができます。ただし、MBTiles には対応はしていません、その代わりに ArcGIS では、ベクター タイル パッケージ (*.vtpk)と呼ばれるファイルに対応しています。これはベクター タイルとスタイル リソースを持ったファイル形式で、ArcGIS のプラットフォームで使用できるため便利です。
前回の記事で紹介しましたが、国土数値情報で公開されている 1km メッシュ別将来推計人口(H30国政局推計)(shape形式版)を ArcGIS に登録しました。ArcGIS で作成したベクタータイルは、以下のURLでアクセスすることができるようになります。
上記の URL を使用して、Mapbox GL JS で表示したのが以下の地図です。
全体のソースは、GitHub にもございますのでご覧ください。 github.com
その他、ArcGIS では、ArcGIS 以外から供給されているベクトルタイルを利用する方法もございます。ArcGIS REST APIs の Vector Tile Service を返すことができるサーバーなどを用意していただくことで可能となります。
詳細は、@T-ubu さんの12月4日の記事がとても参考になるかと思います。
qiita.com
まとめ
ベクタータイルを作成する際によく使用すると思われるファイルでの対応表を簡単にまとめると以下のような感じになるのかなと思います。ファイルサイズなどは考慮していませんが、ファイルの種類やファイルサイズを考慮すると、ArcGIS や Mapbox の方が優れているような感じでした。ArcGIS の場合、MBTiles に対応すればかなり便利になるのかなと思いました。ただ、ArcGIS の場合は、ファイルジオデータベースや Excel など、もっと多くのファイルには対応しているのも特徴の一つかもしれません。
Mapbox | MapTiler | ArcGIS | |
---|---|---|---|
シェープファイル | ● | ● | ● |
GeoJSON | ● | ● | ● |
CSV | ● | ● | ● |
KML | ● | ● | ● |
GPX | ● | ● | ● |
MBTiles | ● | ● | ✖️ |
ベクター タイル パッケージ (*.vtpk) | ✖️ | ✖️ | ● |