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),
等々。
しかし、これを使用してGoogle Maps APIでポリラインを表示するにはどうすればよいですか? すでにグーグルで検索してみましたが、残念ながら役に立つものは見つかりませんでした。また、成功せずにいくつかのことを試しました。
ありがとう!
編集: ここに私が現在取り組んでいる地図があります:
http://skyline-va.de/phpvms/index.php/acars/viewmapbig
基本的に私がやりたいことは、飛行機の 1 つ、飛行経路をクリックした場合です。も表示されるはずです。座標はデータベースに保存されていますが、平面をクリックした後にクエリを実行する必要があります。
EDIT2:Googleドキュメンタリーでデータをxml形式で出力することができました。しかし、データを表示するために 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);
しかし、それはうまくいかないようです。