У меня есть программа, которая генерирует файлы KML, и теперь вы хотите циклически перемещаться по меткам, чтобы найти ближайший. Но у меня проблемы с велосипедом.API Карт Google - хотите пройти и проложить маршрут для точек в KML
В принципе, я разбираю KML в плагине Google Планета Земля. При нажатии на одну из меток в плагин Google Earth получает это широта/долгота (как 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 (единственный браузер, который наш ИТ-отдел позволит нам использовать) говорит, что скрипт работает медленно. У меня такое чувство, что, используя этот цикл, он не может слушать ответ.
EDIT - извините, должен был упомянуть, есть также карта на той же странице, которая показывает результат. Он работает только при одном (за пределами этого цикла), в то время как в данный момент этот цикл имеет дело только с тремя (следовательно, while (i < 3)). Цель состоит в том, чтобы это касалось множества меток, и я могу получить количество меток в файле KML без проблем.