用途:通过 HTTP 集成 Google Maps Platform,获取地图、地点与路线数据。资料提到原生渲染用 google-maps-sdk,RN 路线用 react-native-routes,反向地理编码用 reverse-geocoding。
主要能力(常见产品):Directions 负责 A→B 路线、steps、polyline、时长/距离;Distance Matrix 生成 ETA 矩阵,用于匹配与批量计算;Geocoding 实现地址与坐标互转;Places 提供 Autocomplete、Place Details、nearby;Roads 做轨迹吸附(GPS trail)。资料建议只启用所需 API,因为按请求计费。
使用与工程规则:API key 必须做限制(HTTP referrer、服务器 IP、iOS/Android bundle);服务器密钥不得放入移动端,需要保密的场景通过后端代理。在 Google Cloud Console 只启用实际使用的 API,并监控配额与告警。对 OVER_QUERY_LIMIT、ZERO_RESULTS、NOT_FOUND、REQUEST_DENIED 做类型化处理;对稳定响应(固定地址地理编码)做有 TTL 的缓存并遵守 ToS;避免记录 key 或过量地址 PII。
认证与计费:需要 GCP 项目与结算账号;尽量拆分 mobile-sdk、server-directions、server-places 等密钥;设置 Cloud 预算告警;白标(如 taxi-machine)场景按租户或独立 GCP 项目配置密钥。
接口契约:在客户端/服务端对响应做类型化(lat、lng、encodedPolyline、placeId、formattedAddress);用户选中 Place 时优先用 placeId 而非自由地址;按用户/租户 locale 传 language/region;按市场选 metric/imperial。
Directions 要点:参数含 origin、destination、mode=driving|walking|transit,以及可选 waypoints、alternatives;返回 routes[].overview_polyline 与 legs[].duration、distance;polyline 可在客户端解码;偏离较大或模式变更时重新请求。
Places Autocomplete 要点:用 session token 保证 Autocomplete→Details 计费正确;用 locationBias/restriction 限定租户辖区;输入做 200–300 ms 防抖并设最小字符数。
反模式:把未限制的 AIza… key 提交到 git;每次按键都请求 Autocomplete 且无防抖、无 session;客户端发起爆炸性 N×N Distance Matrix;把 ZERO_RESULTS 当成致命网络错误;不必要地混用 Geocoding 与 Places Details 增加成本。
完成标准:密钥已限制且启用了正确 API;Google 错误映射为 UX/领域错误;适用时使用 Places session token;Directions/Matrix/Geocode 覆盖产品流程;移动端二进制中无密钥。
限制:资料未提供具体代码示例、安装命令、价格数值、平台支持细节或效果数据,暂未提供。