您可以使用 Map Management API 以程序化方式管理云端地图样式设置资源,包括 v2alpha(实验性)和 v2beta(预览版)端点。
操作摘要
如需使用 Map Management API 可视化自定义地图,请按以下关键步骤操作:
- 创建 StyleConfig:使用颜色、可见性和密度设置的 JSON 表示法定义地图的视觉外观。
- 创建 MapConfig:建立一个唯一的地图 ID,作为地图的容器 ,用于存储地图的身份和高级功能。
- 将它们与 MapContextConfig 相关联:将
StyleConfig(和 可选的数据集)链接到MapConfig中的特定地图变体(例如ROADMAP或SATELLITE)。
默认行为
使用 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:请求正文格式不正确或包含无效的 字段值。