На карте у меня есть массивы маркеров. Один статический, назовем station
. Остальные тоже статичны, но они временные, назовем их fire
. При нажатии на fire
кратчайший маршрут должен быть построен к одному из stations
. Я использую TravelMode.DRIVING. Я знаю, что могу рассчитать расстояние маршрута, но для расчета я должен сначала построить маршрут. Есть ли какая-нибудь библиотека для поиска оптимального маршрута между одним фиксированным маркером и одним из многих других маркеров? Или вы можете помочь мне рассказать логику? Я могу сам написать код.
Вот я реализовал оптимальный маршрут к одному из двух маркеров, а ко многим маркерам можно вычислить с помощью цикла. Но есть ли альтернативный способ сделать это?
directionsService1.route(request1, function (response1, status1) {
if (status1 == google.maps.DirectionsStatus.OK) {
var myRoute1 = response1.routes[0].legs[0];
distance1 = myRoute1.distance.value;
directionsService2.route(request2, function (response2, status2) {
if (status2 == google.maps.DirectionsStatus.OK) {
var myRoute2 = response2.routes[0].legs[0];
distance2 = myRoute2.distance.value;
if (distance1 > distance2) {
directionsDisplay2.setMap(map);
directionsDisplay2.setDirections(response2);
directionsDisplay1.setMap(null);
} else {
directionsDisplay1.setMap(map);
directionsDisplay1.setDirections(response1);
directionsDisplay2.setMap(null);
}
}
});
}
});