我使用 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();
查看萤火虫控制台,我看到它以这种格式输出数据
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),
等等。
但是如何使用它在 Google Maps api 中显示折线?我已经尝试搜索谷歌,不幸的是我找不到任何有用的东西。我也尝试了几件事但没有成功。
谢谢!
编辑:这是我现在正在处理的地图:
http
:
//skyline-va.de/phpvms/index.php/acars/viewmapbig 基本上我想要做的是如果你点击其中一架飞机,飞行路径也应该显示。我将坐标存储在数据库中,但我必须在单击飞机后进行查询。
EDIT2:我设法用谷歌纪录片以 xml 格式输出数据。但是我无法让谷歌提供的代码来显示数据。我想将通过 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);
但这似乎不起作用。