Map Management API 指南和示例

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

运营摘要

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

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

默认行为

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

  • 地图类型:默认地图渲染类型为 RASTER。如需使用基于矢量的地图,您必须在 MapConfig 中将 map_type 明确设置为 VECTOR
  • 映射变体:如果在创建 MapContextConfig 时未指定任何 map_variants,则默认情况下,配置仅适用于 ROADMAP 变体。
  • 基础样式:如果 StyleConfig 中的 json_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 用于定义地图的身份和核心渲染类型。

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