Map Management API 指南和示例

您可以使用 Map Management API 以程序化方式管理云端地图样式设置资源,包括 v2alpha(实验性)和 v2beta(预览版)端点。

操作摘要

如需使用 Map Management API 可视化自定义地图,请按以下关键步骤操作:

  1. 创建 StyleConfig:使用颜色、可见性和密度设置的 JSON 表示法定义地图的视觉外观。
  2. 创建 MapConfig:建立一个唯一的地图 ID,作为地图的容器 ,用于存储地图的身份和高级功能。
  3. 将它们与 MapContextConfig 相关联:将 StyleConfig(和 可选的数据集)链接到 MapConfig 中的特定地图变体(例如 ROADMAPSATELLITE)。

默认行为

使用 v2 端点时,请注意以下默认行为:

  • 地图类型:默认地图渲染类型为 RASTER。如需使用基于矢量的地图,您必须在 MapConfig 中将 map_type 显式设置为 VECTOR
  • 地图变体:如果在创建 MapContextConfig时未指定map_variants,则默认情况下,该配置仅应用于ROADMAP 变体。
  • 基本样式:如果 json_style_sheet 为空或未提供在 StyleConfig中,则将使用默认的无样式 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 定义了地图的身份和核心渲染类型。

创建 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"
}'

使用 MapContextConfig

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:请求正文格式不正确或包含无效的 字段值。