Map Management API ガイドと例

Map Management API を使用すると、v2alpha(試験運用版)と v2beta(プレビュー版)の両方のエンドポイントで、Cloud ベースのマップのスタイル設定リソースをプログラムで管理できます。

業務の概要

Map Management API を使用してカスタムマップを可視化する主な手順は次のとおりです。

  1. StyleConfig を作成する: 色、可視性、密度の設定の JSON 表現を使用して、地図の視覚的な外観を定義します。
  2. MapConfig を作成する: 地図の ID と高度な機能のコンテナとして機能する一意のマップ ID を確立します。
  3. MapContextConfig に関連付ける: StyleConfig(およびオプションのデータセット)を MapConfig 内の特定の地図バリアント(ROADMAPSATELLITE など)にリンクします。

デフォルトの動作

v2 エンドポイントを使用する場合は、次のデフォルトの動作に注意してください。

  • 地図の種類: デフォルトの地図レンダリング タイプは RASTER です。ベクトルベースの地図を使用するには、MapConfigmap_typeVECTOR に明示的に設定する必要があります。
  • マップ バリアント: MapContextConfig の作成時に map_variants が指定されていない場合、構成はデフォルトで ROADMAP バリアントにのみ適用されます。
  • ベース スタイル: StyleConfigjson_style_sheet が空の場合、または指定されていない場合は、デフォルトのスタイルなしの Google 基本地図が使用されます。

StyleConfig の操作

StyleConfig には、JSON ベースのスタイル設定定義が含まれます。

StyleConfig を作成する

curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
https://mapmanagement.googleapis.com/v2beta/projects/YOUR_PROJECT_ID/styleConfigs \
-d '{
  "display_name": "My Custom Style",
  "json_style_sheet": "[{\"featureType\":\"all\",\"stylers\":[{\"saturation\":-100}]}]"
}'

StyleConfig の一覧を取得する

curl -X GET \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
https://mapmanagement.googleapis.com/v2beta/projects/YOUR_PROJECT_ID/styleConfigs

MapConfig の操作

MapConfig は、マップの ID とコア レンダリング タイプを定義します。

MapConfig を作成する

curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
https://mapmanagement.googleapis.com/v2beta/projects/YOUR_PROJECT_ID/mapConfigs \
-d '{
  "display_name": "My New Map",
  "map_type": "VECTOR"
}'

MapContextConfigs の操作

MapContextConfig は、スタイル設定を MapConfig にリンクします。

MapContextConfig を作成する

curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
https://mapmanagement.googleapis.com/v2beta/projects/YOUR_PROJECT_ID/mapConfigs/YOUR_MAP_ID/mapContextConfigs \
-d '{
  "style_config": "projects/YOUR_PROJECT_ID/styleConfigs/YOUR_STYLE_ID",
  "map_variants": ["ROADMAP", "NAVIGATION"]
}'

エラー

  • PERMISSION_DENIED: リクエストに十分な IAM 権限がないか、プロジェクトで API が有効になっていません。
  • NOT_FOUND: 指定されたリソース(プロジェクト、MapConfig、StyleConfig)が存在しません。
  • INVALID_ARGUMENT: リクエスト本文の形式が正しくないか、無効なフィールド値が含まれています。