Я использую xmlhttprequest для получения координат из базы данных mysql. Это работает со следующим кодом:
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","http://skyline-va.de/phpvms/lib/skins/crystal/mysql.php?id="+this.flightdetails.id,true);
xmlhttp.send();
Глядя на консоль firebug, я вижу, что это выводит данные в этом формате
new google.maps.LatLng(51.2848358165405, 6.77062893232108),
new google.maps.LatLng(51.2848358165405, 6.77062893232108),
new google.maps.LatLng(51.2848358165405, 6.77062893232108),
new google.maps.LatLng(51.2848358165405, 6.77062893232108),
и т. д.
Но как я могу использовать это для отображения ломаной линии в API Карт Google? Я уже пробовал искать в Google, но, к сожалению, ничего полезного не нашел. Я также пробовал несколько вещей, но безуспешно.
Спасибо!
РЕДАКТИРОВАТЬ: вот карта, над которой я работаю прямо сейчас: http://skyline-va.de/phpvms/index.php/acars/viewmapbig
В основном то, что я хочу сделать, - это если вы щелкнете по одной из плоскостей, путь полета также должен отображаться. У меня есть координаты, хранящиеся в базе данных, но я должен выполнить запрос после щелчка по плоскости.
EDIT2: мне удалось вывести данные в формате xml с помощью документального фильма Google. Но я не могу заставить работать код, предоставленный Google для отображения данных. Я хочу добавить каждую новую точку, которая поступает через команду for в массив.
function downloadUrl(url,callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.open('GET', url, true);
request.send(null);
}
var flightPlanCoordinates = [
];
downloadUrl("http://skyline-va.de/phpvms/lib/skins/crystal/output-xml.php?id="+this.flightdetails.id, function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
flightPlanCoordinates.push(new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng"))));
};
});
flightPath2 = new google.maps.Polyline({
path: flightPlanCoordinates,
strokeColor: "#FF0000", strokeOpacity: 1.0, strokeWeight: 2
});
flightPath2.setMap(map);
Но, похоже, это не работает.