google 方向 API 不断更改目的地邮政编码
google directions API keeps changing the destination postalcode
我在使用 google 方向时遇到问题 api。
例如我想查询两个城市之间的距离,我发送以下命令:
https://maps.googleapis.com/maps/api/directions/json?origin=8380 Belgium&destination=2030 Belgium&sensor=false&alternatives=true&key=<mykey>
它应该 return 有关 postalcode 8380(比利时)和 postalcode 2030(比利时)之间路线的详细信息。
但在结果中我看到 google 已将 postalcode 2030 更改为 4730 !
那是一个完全不同的位置。
另请参阅此
如果我只是像这样使用地图 url
http://www.google.be/maps/dir/8380 Belgium/2030 Belgium
然后它按预期工作。
我如何才能强制 google 不将 postal 代码更改为其他代码,而是继续使用我发送的 postal 代码?
编辑
我一直在玩它,结果发现如果我使用 B-2030
而不是 2030
作为 post alcode,它会按预期工作。
如果我使用 BE-2030
它会让我接近但仍然有 15 公里远。
但是在所有 postal 代码上使用像 B-
这样的前缀是我不想做的事情,也许它在其他一些 postal 代码上会出错,而且我们也有很多外国地址我不想保留所有国家/地区代码的列表...
编辑
我已将此问题作为 google 的票证,我收到了他们知道此问题的答复,并且开发人员正在寻找解决方案。
当我从他们那里收到更多消息时,我会更新这个 post。
你说得对,这是一个已知的 4 位邮政编码问题,已在 Google 多个国家/地区的问题跟踪器中报告:
https://issuetracker.google.com/issues/75985322
希望Google尽快解决。
与此同时,唯一可靠的解决方法似乎是通过地点自动完成服务将邮政编码解析为其地点 ID,并在路线请求中应用地点 ID。
例如为您的示例执行地点自动完成请求:
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=8380%20Belgium&types=(regions)&key=YOUR_API_KEY
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=2030%20Belgium&types=(regions)&key=YOUR_API_KEY
这些请求将 return“8380 Belgium”的地点 ID ChIJo0saJPpVw0cRzkf6DZ5gRBo
和“2030 Belgium”的地点 ID ChIJ4ejQlRcIxEcRnGOzGMCkbYc
。
现在您可以使用这些地点 ID 执行路线请求并获得预期结果
https://maps.googleapis.com/maps/api/directions/json?origin=place_id%3AChIJo0saJPpVw0cRzkf6DZ5gRBo&destination=place_id%3AChIJ4ejQlRcIxEcRnGOzGMCkbYc&mode=driving&alternatives=true&key=YOUR_API_KEY
这是路线计算器中的相同请求:
我希望这个解决方法可能有所帮助。
我在使用 google 方向时遇到问题 api。
例如我想查询两个城市之间的距离,我发送以下命令:
https://maps.googleapis.com/maps/api/directions/json?origin=8380 Belgium&destination=2030 Belgium&sensor=false&alternatives=true&key=<mykey>
它应该 return 有关 postalcode 8380(比利时)和 postalcode 2030(比利时)之间路线的详细信息。
但在结果中我看到 google 已将 postalcode 2030 更改为 4730 !
那是一个完全不同的位置。
另请参阅此
如果我只是像这样使用地图 url
http://www.google.be/maps/dir/8380 Belgium/2030 Belgium
然后它按预期工作。
我如何才能强制 google 不将 postal 代码更改为其他代码,而是继续使用我发送的 postal 代码?
编辑
我一直在玩它,结果发现如果我使用 B-2030
而不是 2030
作为 post alcode,它会按预期工作。
如果我使用 BE-2030
它会让我接近但仍然有 15 公里远。
但是在所有 postal 代码上使用像 B-
这样的前缀是我不想做的事情,也许它在其他一些 postal 代码上会出错,而且我们也有很多外国地址我不想保留所有国家/地区代码的列表...
编辑
我已将此问题作为 google 的票证,我收到了他们知道此问题的答复,并且开发人员正在寻找解决方案。
当我从他们那里收到更多消息时,我会更新这个 post。
你说得对,这是一个已知的 4 位邮政编码问题,已在 Google 多个国家/地区的问题跟踪器中报告:
https://issuetracker.google.com/issues/75985322
希望Google尽快解决。
与此同时,唯一可靠的解决方法似乎是通过地点自动完成服务将邮政编码解析为其地点 ID,并在路线请求中应用地点 ID。
例如为您的示例执行地点自动完成请求:
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=8380%20Belgium&types=(regions)&key=YOUR_API_KEY
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=2030%20Belgium&types=(regions)&key=YOUR_API_KEY
这些请求将 return“8380 Belgium”的地点 ID ChIJo0saJPpVw0cRzkf6DZ5gRBo
和“2030 Belgium”的地点 ID ChIJ4ejQlRcIxEcRnGOzGMCkbYc
。
现在您可以使用这些地点 ID 执行路线请求并获得预期结果
https://maps.googleapis.com/maps/api/directions/json?origin=place_id%3AChIJo0saJPpVw0cRzkf6DZ5gRBo&destination=place_id%3AChIJ4ejQlRcIxEcRnGOzGMCkbYc&mode=driving&alternatives=true&key=YOUR_API_KEY
这是路线计算器中的相同请求:
我希望这个解决方法可能有所帮助。