Google マップ API v3 の directionService オブジェクトに問題がありました。
マーカー配列は、「google.Maps.Marker」オブジェクトを含む配列であり、それらの間の距離を計算したいと考えています。しかし、directionService オブジェクトが「over_query_limit」エラーまたは「unknown_error」を返すことがあり、制限時間を考慮しているため理由がわかりません (2 ポイントごとに 1 秒間ポーズをとります)。
しかし、最も奇妙なことは、この問題が時々しか発生しないことです。場合によっては、プログラムが正しく実行されます。
誰かが私に解決策を提案できますか?
function calcRoute()
{
var start;
var end;
for (var i = 0 ; i < markersArray.length - 1 ; i++)
{
start = markersArray[i].getPosition();
for (var j = i+1 ; j < markersArray.length ; j++)
{
end = markersArray[j].getPosition();
addRoute(start,end,i,j);
addRoute(end,start,j,i);
sleep(1000);
}
}
}
function addRoute(start, end, i, j)
{
var summaryPannel;
var directionsService = new google.maps.DirectionsService();
var request =
{
origin: start,
destination: end,
travelMode: google.maps.DirectionsTravelMode.DRIVING,
optimizeWaypoints: true
};
directionsService.route(request, function(response, status)
{
summaryPanel.innerHTML += status + "<br />";
if (status == google.maps.DirectionsStatus.OK)
{
summaryPanel.innerHTML += (i+1) + " " + (j+1) + "<br/>";
}
});
}