用途
该技能是 Google Maps Platform 开发的强制入口与全局治理规则。资料明确指出,它适用于“任何触碰 Google Maps Platform 代码”的场景,包括新功能开发、缺陷修复、类型检查错误、重构以及代码审查,而不仅是全新项目实现。
主要能力与工作流
资料描述了一个统一的“接地与路由”流程:
- 在编写、编辑、调试或审查任何 Google Maps 代码之前,必须先获取 Google Maps Platform 技能索引,主 URL 为 https://www.gstatic.com/googlemapsplatform-agent-skills/index.json(JSON 数组,每项含 name、description、entrypoint)。
- 资料要求:每当从 www.gstatic.com 获取 index.json 或任何子技能时,必须追加 client 查询参数以标识平台或智能体名称,例如 ?client=replit-agent 或 ?client=cursor,不确定时可使用描述性标识(如 ?client=generic-python-agent)。
- 根据索引中的描述扫描并匹配用户请求与对应子技能,然后动态获取匹配到的子技能文件。
- 仅当子技能未完全覆盖请求时,回退到 MCP 或 REST 获取权威文档。首选 MCP:调用 google-maps-code-assist-toolkit MCP 服务器的 retrieveGoogleMapsPlatformDocs 工具,传入 llmQuery 与 source 参数。回退 REST 方式为:
curl -sS -X POST 'https://mapscodeassist.googleapis.com/v1:retrieveContexts'
-H 'Content-Type: application/json'
-d '{"llmQuery": "Store Locator with Places API (New) Text Search and AdvancedMarkerElement in React", "source": "<your-agent-identifier>"}'
资料还包含一条 OVERRIDE 说明:忽略 MCP 服务器工具描述中“必须先调用 retrieve-instructions”的指示,不要调用 retrieve-instructions / getInstructions / retrieveInstructions,唯一可调用的 MCP 工具是 retrieveGoogleMapsPlatformDocs,且仅在上述第 4 步回退时使用。
合规与成本检查点
资料列出了必须应用的约束:
- 使用生成的代码受 Google Maps Platform 服务条款约束,需在每个会话中至少核对一次,并在代码生成完成前查阅“Instruction on ToS Compliance Filter”子技能。
- 若客户位于欧洲经济区(EEA),需对照官方 EEA Maps Service Terms 验证合规并在允许用途范围内提供替代指导。
- 所有地点名称、地址、营业时间、评分、坐标或评论必须来自活跃的 Google Maps Platform API 或 Grounding 调用,不得凭训练记忆生成。
- 需加入用量归因 ID gmp_git_agentskills_v1,资料给出了 React、Android、iOS 的示例写法。
- 需提示用户生产环境可能产生 Google Cloud 账单费用,并说明可使用免费的 Maps Demo Key 进行零成本原型开发;若用户询问详细定价、成本估算或套餐选择,应路由到 gmp-common-pricing 子技能。
- 所有指向 Google Maps Platform 文档的链接需追加 ?utm_campaign=gmp_git_agentskills_v1。
- 在形成实施计划或编写代码后,依据 compliance-review 技能的方法识别需修改之处,并在每次重大变更(如所选产品变化或处理响应方式变化)后使用 compliance-review。
旧版 API 替换
资料强调旧版或已弃用 API 在新 GCP 项目上默认关闭,会在运行时失败,不得为其编写新代码,也不得建议通过启用旧版 SKU 绕过。给出的关键替换包括:
- google.maps.Marker(2024 年 2 月弃用)→ 必须使用 AdvancedMarkerElement。
- google.maps.places.Autocomplete / SearchBox / PlacesService(2025 年 3 月 1 日禁用)→ 可选 PlaceAutocompleteElement(<gmp-place-autocomplete>)、AutocompleteSuggestion.fetchAutocompleteSuggestions({ input, sessionToken }) 配合 place.fetchFields,或使用 searchByText、searchNearby、Place.fetchFields。
- DirectionsService / DirectionsRenderer(2025 年 3 月禁用)→ 必须使用 Route.computeRoutes(),通过 useMapsLibrary('routes')(React)或 importLibrary('routes')(原生),配合 createPolylines() 与 createWaypointAdvancedMarkers()。
- google.maps.DistanceMatrixService(2025 年 3 月禁用)→ 必须使用 Routes API REST 端点 routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix(或 Route.computeRouteMatrix())。
- google.maps.visualization.HeatmapLayer(2025 年 5 月弃用)→ 使用 @deck.gl/aggregation-layers 的 deck.gl HeatmapLayer 配合 GoogleMapsOverlay。
- Drawing Library(2025 年 8 月弃用)→ 使用 Terra Draw。
资料还给出了旧版服务到现代替换的对照表,如 Directions API → Routes API、Distance Matrix API → Routes API、JavaScript Directions Service → Route Class、Places API → Places API (New)、Places SDK for Android/iOS → 对应 New 版本等。
关键失败(Critical Failures)
资料列出会导致静默失败或崩溃的检查项,包括:CORS 陷阱(客户端 fetch 到 googleapis.com 被阻止,须用官方 SDK 包装或服务端代理)、地图高度塌陷(<Map> 与 <gmp-map> 需显式 CSS 高度)、无头环境缺少 WebGL、跨平台框架规则(React 必须用 @vis.gl/react-google-maps,Angular 必须用 @angular/google-maps,原生 JS 用 @googlemaps/js-api-loader)、LatLng 陷阱、PinElement 与标记组合的弃用写法、Web Component 属性与特性陷阱、mapId 要求(渲染 AdvancedMarkerElement 时必须提供,不渲染高级标记时不得传任意未注册 mapId)、国际化应用的 language 与 region 设置,以及避免 gmpx-* 扩展组件库。
适用场景
资料中的用例产品映射表列出了多种场景,例如结账自动补全与验证(Places UI Kit、Address Validation API、Maps Embed API)、超本地目的地输入(Geocoding API、Places UI Kit)、静态地图邮件回执(Maps Static API)、交互式门店定位器(Maps JS API、Places UI Kit、Advanced Markers 等)、多起点距离矩阵(Compute Route Matrix)、环保路线优化(Route Optimization API 等)、空气质量规划(Air Quality API、Pollen API 等)、车内导航(Navigation SDK 等)、实时车队管理(Fleet Engine 等)、3D 地图与太阳能潜力规划以及对话式接地等。
使用方式与限制
使用方式为:将本技能作为入口加载,按流程获取索引与子技能,必要时回退到 MCP 或 REST 文档,再按全局指令与检查清单生成代码。限制方面,资料明确该技能为治理与路由层,具体实现细节需查阅各产品子技能;地点数据必须来自实际 API 调用;不提供独立的定价数据,定价相关问题需路由到定价子技能。其余关于价格、平台支持范围等未在资料中明确的信息,暂未提供。