使用Google Directions API Android避免在路线中使用某些坐标

时间:2015-07-17 15:51:23

标签: android google-maps google-maps-api-3 google-direction

我想在使用路线API时避免使用某些坐标。我已阅读以下博客https://code.google.com/p/gmaps-api-issues/issues/detail?id=214

如果我想避免特定的坐标,那么确保Directions API不允许。

然后我尝试使用waypoint参数(允许我们获取包含特定坐标的路径)并考虑相同的源和目标:

1)首先获得路线而不添加航路点

https://maps.googleapis.com/maps/api/directions/json?origin=25.2958001,55.436142&destination=24.914744,54.968565&alternatives=true&mode=driving&key=MYKEY

2)通过添加航路点(我想避免的坐标)获取路线

https://maps.googleapis.com/maps/api/directions/json?origin=25.2958001,55.436142&destination=24.914744,54.968565&waypoints=25.244456,55.404643&alternatives=true&mode=driving&key=MYKEY

3)然后比较结果并尝试从第2步中删除第1步的路线。

但是在这种情况下,第一步返回从同一坐标(我想避免)传递的多个结果,并且结果不包括在第二步中。

我厌倦了这一点。无论如何我需要解决这个问题。

任何人都可以帮我这个吗?或者其他一些可以帮助我解决问题的建议或计算?

谢谢,

2 个答案:

答案 0 :(得分:0)

问题不是很清楚,但我会尝试提供更好的方法来处理这种情况。

由于在航点参数中指定了航点并且可以包含一个或多个地址,我建议使用名称而不是由竖线(|)分隔的地理坐标。这确实可以降低获得错误结果的风险。

在它的顶部,您可以将 optimize:true 作为waypoints参数中的第一个参数,以允许路线服务通过以更有效的顺序重新排列路标来优化提供的路线。 / p>

这是一个例子。

https://maps.googleapis.com/maps/api/directions/json?origin=Adelaide,SA&destination=Adelaide,SA&waypoints=optimize:true|Barossa+Valley,SA|Clare,SA|Connawarra,SA|McLaren+Vale,SA&key=API_KEY

有关详细信息,请参阅此official Google documentation

答案 1 :(得分:0)

Google地图尚不支持此功能,并且有一些要求添加此功能,但是还有另一种方法可以在此处使用此功能。

https://developer.here.com/documentation/routing/topics/example-route-avoiding-an-area.html