您可以使用 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:指定的资源(Project、MapConfig 或 StyleConfig)不存在。
- INVALID_ARGUMENT:请求正文格式不正确或包含无效的字段值。