-1

У меня есть маршрут с несколькими путевыми точками A, B, C, D ... Я хочу получить кратчайшее расстояние этого маршрута через все путевые точки в том же порядке.Получите кратчайшее (не самое быстрое) расстояние маршрута с несколькими путевыми точками от Google Maps Api

Значит, я не хочу оптимизировать порядок путевых точек. Я просто хочу получить самый короткий маршрут. Google Distance Api дает мне самый быстрый маршрут, а не самые короткие.

API-интерфейс Googles Direction дает мне все маршруты, а затем я могу фильтровать кратчайший маршрут, но для этого мне нужно создать две петли. Один, который проходит через путевые точки (A - B, B - C, C - D) и в каждом петле ноги через возможные маршруты, чтобы найти кратчайший.

Интересно, есть ли лучший и элегантный способ сделать это.

ответ

0

Во-первых, я надеюсь, что вы не запрашиваете 3 разных маршрута С альтернативами, потому что вы скоро исчерпаете границы google api. Теперь правильный способ задать маршрут, который проходит через каждую Точку это в angularjs:

uiGmapGoogleMapApi.then(function(maps) { 
     directionsService = new maps.DirectionsService(); 
}); 

directionsService.route(request, function(response, status) {}); 

с запросом существа:

{ 
    origin: 'A', 
    destination: 'D', 
    waypoints: [ 
{ 
    location: 'C', 
    stopover: false 
}], 
provideRouteAlternatives: false, 
travelMode: 'DRIVING' 
} 

как в GoogleAPI руководстве google

Теперь, если вы у вас есть много запросов, доступных для ключа google go, вы можете просто использовать, как вы сказали, предоставить RouteAlternatives: true и найти тот, у которого самое короткое расстояние.

Другой альтернативой является изменение дорожного движения на прогулку, так как это дает маршрут маршрутов, но это очень плохо для улиц с одним направлением и т. Д.