Google Elevation API 传编码polyline path参数报Invalid 'path' parameter错误
报错原因及修正方案
你触发的Invalid 'path' parameter错误,核心是不符合谷歌高程服务对编码折线参数的格式要求,具体问题和修正方式如下:
核心错误
使用Encoded Polyline作为path参数值时,必须在编码生成的折线字符串前添加enc:前缀。谷歌服务仅通过该前缀识别编码折线格式,没有这个前缀时,服务会默认将path值按管道分隔的原始坐标串解析。你传入的纯编码字符串没有任何坐标对的格式特征,因此会被判定为无效参数。
常见配套踩坑点
- URL编码范围错误:你目前只对折线特殊字符做了转义,但没有对前缀做统一编码。添加
enc:后,需要把enc:编码折线的完整值做URL编码,其中冒号需要转义为%3A。 - 编码生成不规范:必须严格按照指定的编码算法生成折线,坐标顺序为
纬度在前、经度在后,坐标值先乘以100000做四舍五入差分后再编码,混用其他平台的编码逻辑会导致即使加了前缀也解析失败。
正确请求示例
你示例中的编码折线内容为cgg~E|{~pUfcaAwe|G,修正后的请求格式为:https://maps.googleapis.com/maps/api/elevation/json?key=KEY&path=enc%3Acgg%7EE%7C%7B%7EpUfcaAwe%7CG&samples=3
其他排查注意事项
- 只要使用
path参数传路径(无论原始坐标还是编码折线),必须配套携带samples参数指定采样点数量,否则会触发参数校验错误。 enc:前缀后必须拼接完整的编码折线内容,不能混入原始管道分隔的坐标对。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

