0

我正在使用谷歌海拔服务

我想为我的路径获取数据,其中包含大约 1k 个点。我知道我不能将它们全部发送到除以|分隔符的查询中,因为我会超出请求大小限制,所以我正在对这些点进行编码,正如编码折线算法在文档中提到的那样,并将它们发送如下:

https://maps.googleapis.com/maps/api/elevation/json?key=KEY&path=cgg%7EE%7C%7B%7EpUfcaAwe%7CG&samples=3

要点:36.578581,-118.291994|36.23998,-116.83171

点编码:cgg~E|{~pUfcaAwe|G

点编码 + urlencoded:cgg%7EE%7C%7B%7EpUfcaAwe%7CG

但我收到以下错误消息:

Invalid request. Invalid 'path' parameter..

当我用非编码查询(路径由管道分隔符分隔)询问谷歌时,我收到了正确的数据。

你有什么提示我在这里做错了吗?

4

1 回答 1

1

该参数期望您的path编码点enc:

这从文档中不是很清楚,我必须承认。

使用您的编码点cgg~E|{~pUfcaAwe|G,路径参数将变为:

path=enc:cgg~E|{~pUfcaAwe|G

概念证明:

https://maps.googleapis.com/maps/api/elevation/json?key=YOUR_API_KEY&path=enc:cgg~E|{~pUfcaAwe|G&samples=3

您必须YOUR_API_KEY用自己的密钥替换。

这将返回以下内容:

{
   "results" : [
      {
         "elevation" : 4411.8828125,
         "location" : {
            "lat" : 36.57858,
            "lng" : -118.29199
         },
         "resolution" : 19.08790397644043
      },
      {
         "elevation" : 1372.885498046875,
         "location" : {
            "lat" : 36.41150237848279,
            "lng" : -117.5602587614725
         },
         "resolution" : 9.543951988220215
      },
      {
         "elevation" : -84.51690673828125,
         "location" : {
            "lat" : 36.23998,
            "lng" : -116.83171
         },
         "resolution" : 9.543951988220215
      }
   ],
   "status" : "OK"
}
于 2021-03-04T16:53:34.083 回答