使用clientID和签名时,Google Geo编码API会返回Zero_results

时间:2016-12-08 16:55:45

标签: google-maps-api-3 google-geocoding-api

https://maps.googleapis.com/maps/api/geocode/xml?address=Bahnhofstra%C3%9Fe+12,+37603+Holzminden,+Germany(&)key=myAPIKey

上述网址在2天前返回了Google地理代码,今天它返回了Zero_reuslts状态。我尝试了不同的地址,这是相同的情况。所以我通过在key和Address之间添加(&)来修复它们。

我使用高级帐户尝试了相同的方法,它返回错误为"无法验证请求。提供'签名'不适用于提供的客户ID或提供的客户端'无效.."

但是,如果我使用旧方法URL编码作为下面的draffted,它会将Zero_results作为状态。

https://maps.googleapis.com/maps/api/geocode/xml?address=Bahnhofstra%C3%9Fe+12,+37603+Holzminden,+Germanyclient=gme-myClientIDsignature=myCryptKey

我今天遇到问题,有人可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

更改您的通话并使用Places API而不是地理编码API:

https://maps.googleapis.com/maps/api/place/textsearch/json?key=YOUR_API_KEY&query=Bahnhofstraße+12,+37603+Holzminden,+Germany

我能够以这种方式解决问题,因为自昨天以来我遇到了与ZERO RESULTS错误相同的问题。似乎谷歌在地理编码API中已经改变了一些东西。

答案 1 :(得分:0)

这里有两个问题混在一起。

  1. ZERO_RESULTS是由于Geocoder API中的新转发地理编码器不再为不完整或模糊的请求返回不良结果。对于格式错误的请求也会发生同样的情况,例如:
  2. http://maps.google.com/maps/api/geocode/json?address=Bahnhofstra%C3%9Fe+12,+37603+Holzminden,+ Germanykey = YOUR_API_KEY

    返回ZERO_RESULTS,因为它错过了& 德国之间的字符。这很容易解决:

    http://maps.google.com/maps/api/geocode/json?address=Bahnhofstra%C3%9Fe+12,+37603+Holzminden,+德国&安培;键 = YOUR_API_KEY

    1. 修复后,您的客户端ID和签名实际上正在被检查,如果您收到Unable to authenticate the request错误,则表示您的请求格式错误。有关如何正确签署请求的详细信息,请参阅Digital signatures,这是一个做得好的工具,因此您可以检查您的签名与其生成的签名:
    2. https://m4b-url-signer.appspot.com