Hirosaji Tech Blog 🍙

Web開発の記事が多め。絵師支援の記事も少し。

Mapbox APIの全容を把握する

TL;DR

  • Mapbox API公式リファレンスを補足付きで要約した。
  • Mapbox APIを知れば、ラッパー(Mapbox GL JSなど)の理解に繋がる。
  • Mapbox APIは、4つの構成(地図、ナビ、検索、アカウント)に分かれる。

はじめに

Mapboxは、機能やデザインを自由にカスタムした地図をWebやアプリ向けに埋め込むことができる地図サービスとして広く知られています。

私も普段 Mapbox GL JSMaps SDK のようなラッパーを使ってカスタム地図を開発しています。 ただ、ラッパーのリファレンスを読むだけでは、何がどんな仕様で動いているのかを知るのに限界がありました。

そこで、ラッパーの内部で動く処理を詳しく知るため、Mapboxが提供するAPIについてまとめました。

Mapbox APIとは

Mapboxが提供するツールやサービスとやり取りするためのAPIです。
多くのWeb/アプリ開発者は、ラッパーを通じてMapbox APIを使っているため、Mapbox APIを意識することはあまりありません。

Mapbox APIの構成とAPI一覧

Mapbox APIは、次の4つの構成に分かれています。

Maps service

背景地図として使うタイルを操作するAPI群です。 Mapboxのサービスを使うほとんどの人は、このAPIを利用しています。

  • Vector Tiles API
    ベクタータイルを取得する。
    (例:Mapbox Studioのstylesから生成されたベクタータイル)

  • Raster Tiles API
    ラスタータイルを取得する。
    (例:プリセットの衛星画像タイルや、Mapboxにアップロードしたラスターデータで生成したタイル)

  • Static Images API
    静止画を取得する。
    (例:Mapbox Studioのstylesから生成された静止画像としての地図)

  • Static Tiles API
    ラスタータイルを取得する。
    (例:Mapbox Studioのstylesから生成されたラスタータイル)

  • Styles API
    初期ロード時の座標やズームレベル、フォントなどのスタイルを取得・変更する。
    (スタイルは、最新の Style Specification に準拠)

  • Tilequery API
    指定した緯度経度の半径内にあるfeature(地物)オブジェクトを検索する。
    指定したポリゴン内からの検索も可能。

  • Uploads API
    データを一時的にS3へアップロードし、他のAPIから呼び出せるタイルセットに変換する。
    データは、Datasets API管理ページで作成したデータセットを使っても良い。
    現在は、Tilesets API(ベータ版)に機能が代替されつつある。

  • Tilesets API [Beta]
    手持ちのデータで、他のAPIから呼び出すタイルセットを作成・更新・削除する。
    ちなみに、タイルセットの作成手順はこちら
    一連の操作ができる Tilesets CLI を使うと便利。

  • Datasets API
    手持ちのデータでデータセットを作成したり、作成されたデータセットの取得・更新・削除をする。
    データセット管理ページで作成することも可能。

  • Fonts API
    フォントの追加や、追加したフォント情報の取得をする。

Navigation service

ルート情報や等時線を取得するAPI群です。
主にカーナビなど、移動のナビゲーションに使われます。

  • Directions API
    自動車・自転車・徒歩のルート情報を取得する。 ルート情報は Route object に集約される。
    Route object には、下記のようにオブジェクトがネストされる。(もちろん、下記以外の変数オプションもある)
Route object
└── Route leg object
    ├── Banner instruction object
    └── Route step object
        └── Step maneuver object
            └── Voice instruction object
  • Isochrone API
    指定した場所から指定した時間内に到着可能なポリゴン、またはラインを取得する。
    ちなみに、Isochroneは等時線の意。

  • Map Matching API
    指定した緯度経度にマッチしたルート情報を取得する。
    ルート情報は、Directions API から取得する。

  • Matrix API
    緯度経度を要素とする行列を用いて、各要素の最速ルートの所要時間または距離を取得する。
    一方通行などの道路の状況も考慮される。

  • Optimization API
    緯度経度を要素とする行列を用いて、巡回セールスマン問題を解いたルートを取得する。

Search service

情報検索に使うAPIが含まれます。

  • Geocoding API
    住所と緯度経度の相互変換をする。

Accounts service

アカウント情報を操作するためのAPIが含まれます。

  • Tokens API
    アクセストークンを取得・作成・更新・削除する。

おわりに

この記事では、Mapbox APIの全容を把握するために、公式リファレンスを要約しました。
詳しい仕様が気になった方は、最後の参考リンクをチェックしてみてください。

参考リンク