谷歌没有告诉我哪个航点是错的(Javascript API)

时间:2014-09-08 15:49:16

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

当Google向带路标的方向请求返回NOT_FOUND响应时,文档说

NOT_FOUND indicates at least one of the locations specified in the requests
          origin, destination, or waypoints could not be geocoded.

但它并没有告诉我哪一个是无效的......

我意识到我可以尝试单独地对每个地址进行地理编码以找到错误的地址,但这会浪费很多地理编码请求,因为我有大约20个航路点,并且考虑到谷歌可以告诉我哪一个失败了......

有办法做到这一点吗?

我的后备是在保存地址之前对地址进行地理编码,但是我不想这样做,如果我可以让google告诉我哪个路径点失败了。

通常情况下,响应会以warnings返回,我认为可能会返回错误的地址,但我认为只有在首先构建路由时才会发生。

1 个答案:

答案 0 :(得分:0)

Warning项目用于在找到路线时显示信息,您是对的。例如,它告诉walking方向模式结果处于测试阶段。

示例:http://maps.googleapis.com/maps/api/directions/json?origin=Boston,MA&destination=Concord,MA&waypoints=Charle,MA&mode=walking

对于您描述的问题(未找到航点),Web服务的响应非常短。使用非工作航点的示例呼叫:

http://maps.googleapis.com/maps/api/directions/json?origin=Boston,MA&destination=Concord,MA&waypoints=Chle,MA

结果:

{
   "routes" : [],
   "status" : "ZERO_RESULTS"
}

谷歌地图Directions API目前无法帮助您处理您的情况,您也无法一次尝试对所有航路点进行地理编码。此外,如果您同时超过5个请求,地理编码API将会出错,因此您的初步解决方法可能会受到限制。

作为一种解决方法(但不完美,因为此服务与gmaps服务之间的结果可能不同),您可以尝试使用其他地理编码服务,例如OpenStreetMap提供的服务:http://wiki.openstreetmap.org/wiki/Nominatim#Search

您仍然需要逐个执行此操作,但不会出现“超出查询限制”错误。