マップ上で、マーカーの配列を作成する必要があります。1つは静的です、呼び出しましょうstation
。その他も静的ですが、一時的なものです。と呼びましょうfire
。クリックするfire
と、最短ルートがのいずれかに構築される必要がありますstations
。TravelMode.DRIVINGを使用しています。ルート距離を計算できることは知っていますが、計算するには、最初にルートを作成する必要があります。1つの固定マーカーと他の多くのマーカーの1つとの間の最適なルートを見つけるためのライブラリはありますか?それとも私が論理を話すのを手伝ってくれませんか?自分でコードを書くことができます。
これは、2つのマーカーのいずれかに最適なルートを実装したもので、ループを使用して多くのマーカーを計算できます。しかし、それを行う別の方法はありますか?
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);
}
}
});
}
});