フリーダムの日記

GIS(地理情報システム)を中心に技術的なことを書いています。

Mapbox、Maptiler、ArcGIS の地図プラットフォームについて

はじめに

本エントリーは ベクトルタイル Advent Calendar 2021 4日目の記事です。

qiita.com

Mapbox、Maptiler、Esri 社の ArcGISクラウドサービスとして、ベクトルタイルの作成や配信などができる地図プラットフォームを提供しています。今回は、各社のプラットフォームに触ってみましたので、各社の特徴や自分なりの見解について紹介したいと思います。地図プラットフォームとて、近年はベクトルタイルに限らず、3D データなどの扱いも増えており、多様なデータフォーマットに対応しているなど、クライアントに求められるニーズも多様化しています。各社得意な領域などもあるかと思いますが、今回はベクトルタイルにフォーカスして紹介します。

Mapbox について

ベクトルタイルの先導者としては、やはり Mapbox でしょうか。ベクトルタイルの仕様策定含めて、各社もMapbox の仕様を採用するなど、業界でも標準となっている仕様です。

Mapbox がデータの登録や配信などの地図プラットフォームとして提供しているのが、Mapbox Studio というサービスです。個人的にも大好きです。

www.mapbox.jp

Mapbox Studio は、地理空間データを管理し、カスタム マップ スタイルを設計するための Mapbox アプリケーションです。Mapbox Studio を使用して、独自のデータをアップロードおよび編集したり、Mapbox が提供するタイルセットを利用したり、カスタム フォントやアイコンを追加したり、内蔵のテンプレート マップ スタイルを改良したりして、正確な仕様のマップを構築およびデザインすることができます。Mapbox Studioを使えば、データの管理やデザインのコントロールが簡単にできます。

使い方などの詳細は以下のガイドを参照していただければと思います。

docs.mapbox.com

Mapbox Studio の特徴としては、地図のデザインはもちろんですが、ベクトルタイルで使用する MBTiles の対応や GIS で扱うデータフォーマットに対応しているところかなと思います。

Mapbox Studio

登録できるデータ対応の特徴として、編集可能なデータの場合は、dataset と呼ばれる機能で対応します。GeoJSON などの編集したい場合は、こちらを使用します。Mapbox Studio 上で編集ができるたりできます。

docs.mapbox.com

編集はできないが、ベクターデータなどのタイルセットや大きいファイルサイズなどの場合はこちらを使用します。MBTiles などもこちらに該当します。

docs.mapbox.com

今回は、試しに Maptiler のサービスを使用してみました。OpenStreetMapベクタータイルがダウンロードできるため、日本エリアで名古屋地区の MBTiles をダウンロードして使用しました。

data.maptiler.com

ダウンロードした名古屋地区の MBTiles を Tilesets からアップしてみました。データが反映されると以下のように Mapbox Studio からスタイルの編集など、オリジナルの地図を作成することができます。

Mapbox Studio

あとは、Mapbox Studio で作成した地図などは、Mapbox GL JS などのクライアントライブラリを使用して、地図サービスとして使用したりなど、アプリとして提供もできます。

その他、Mapbox Studio などを使用した方法などについては、過去にも以下の記事でも紹介していますので、ご覧いただければと思います。
freedom-tech.hatenablog.com

Maptiler について

次に Maptiler です、Maptiler ですが、サービスは知っていましたが、今回本格的に触ったのが初めてです。Mapbox と競合の位置付けのようですね、オープンソースのプロジェクトとしても多くのサービスを提供しているようです。まだ、サービス全体などが把握できていませんが、地図のデータホスティングサービスとして、クラウドやオンプレミスのサービスがあるようです。

www.maptiler.com

ベクトルタイルの配信サーバーとして、MapTiler Server や クライアントライブラリの MapLibre GL JS などがあります。

openmaptiles.org

www.maptiler.com

地図データの登録や配信などの地図プラットフォームとして提供しているのが、maptiler CLOUD というサービスです。地図をカスタマイズし、独自の地理データをアップロードし、それを作成して、オンラインで公開することができます。

www.maptiler.com

こちらもサービスは無償から利用することができ、取り扱うことができるファイル仕様などは、Mapbox と同じようです。データの位置付けとしても dataset と tileset とあり、GeoJSON や MBTiles などのデータをアップすることができます。ただ、無料アカウントだと制限があるみたく、無料アカウントの場合、タイルのアップロードは1回のみだそうです。無料アカウントでも Mapbox Studio の方が色々と使い勝手が良さそうな印象です。

maptiler

maptiler

ここでは、国土数値情報 | 医療機関データ岐阜県のデータを登録してみました。データサイズや座標系など色々と制限はあるようですが、今回は、dataset からシェープファイルをアップしてみました。ベクタータイルが作成されて地図に表示されます。

maptiler

こちらも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 以外のサービスからもアクセスすることができます。また、これが便利なところは、クエリーと呼ばれるデータの検索やさらにデータの編集も行うことができるため、動的なデータを扱う上では便利です。

freedom-tech.hatenablog.com

また、こちらの記事も参考になります。
developers.arcgis.com

ArcGIS で扱えるデータに関しては、Mapbox や MapTiler と同じで CSV、XLS、GeoJSON、Shapefile 及びその他の形式でデータをアップすることができます。ただし、MBTiles には対応はしていません、その代わりに ArcGIS では、ベクター タイル パッケージ (*.vtpk)と呼ばれるファイルに対応しています。これはベクター タイルとスタイル リソースを持ったファイル形式で、ArcGIS のプラットフォームで使用できるため便利です。

ArcGIS

ArcGIS

developers.arcgis.com

前回の記事で紹介しましたが、国土数値情報で公開されている 1km メッシュ別将来推計人口(H30国政局推計)(shape形式版)を ArcGIS に登録しました。ArcGIS で作成したベクタータイルは、以下のURLでアクセスすることができるようになります。

https://vectortileservices5.arcgis.com/HzGpeRqGvs5TMkVr/arcgis/rest/services/1km_mesh_suikei_2018/VectorTileServer/tile/{z}/{y}/{x}.pbf

上記の 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) ✖️ ✖️