我有一個程序可以生成KML文件,現在想循環瀏覽地標以找到最近的一個。但是我在通過它們循環時遇到問題。Google Maps API - 想循環瀏覽並獲取KML中的點數
基本上,我將KML解析爲Google地球插件。點擊在谷歌地球插件的地標之一得到它的緯度/經度(如StartLat和StartLon),並開始了這個代碼:
function GetDir()
{
var PlaceMarks=ge.getElementsByType('KmlPlacemark');
i=0;
GetNext=1;
while(i<3)
{
if(GetNext==1)
{
GetNext=0;
var PM2 = PlaceMarks.item(i);
var request=
{
origin: StartLat + ", " + StartLon,
destination: PM2.getGeometry().getLatitude() + ", " + PM2.getGeometry().getLongitude(),
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(result, status)
{
if (status == google.maps.DirectionsStatus.OK)
{
directionDisplay.setDirections(result);
}
});
}
}
}
我有一個「空閒」聽衆在地圖上的話,理論上,在找到方向並顯示它們之後,i增加1,所以我們移動到下一個地標,GetNext設置爲1,所以我們再次調用方向。
目前它咆哮起來,IE8(我們的IT部門允許我們使用的唯一瀏覽器)表示腳本運行緩慢。我有這樣的感覺,使用這個循環,它不能聽取回應。
編輯 - 抱歉,應該提到,在同一頁上還有一張地圖顯示結果。它僅在處理一個(此循環之外)時才起作用,而此時此循環僅處理三個(因此while(i < 3))。目的是爲了處理大量的地標,並且我可以在KML文件中獲得地標數量沒有問題。