0
我正在使用api页面上的指南(https://developers.google.com/maps/articles/phpsqlajax_v3)通过XML文件从mySQL数据库中读取标记。来自mySQL的谷歌地图多段线阵列
我不确定如何从xml文件中获取多段线路径,如果可能的话。但是,我可以让标记正常工作。
我现有的代码是在这里:提前
<script type="text/javascript">
//<![CDATA[
function load() {
//Retrieve generated xml file containing marker data
downloadUrl("phpsqlajax_genxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
//Create map, find center from marker array
var map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(parseFloat(markers[0].getAttribute("latitude")),
parseFloat(markers[0].getAttribute("longitude"))),
zoom: 5,
scaleControl:true,
mapTypeId:google.maps.MapTypeId.ROADMAP,
});
var infoWindow = new google.maps.InfoWindow;
var imgnum=1;
//Loop through markers array, using its length to find points and create markers on map
for (var i = 0; i < markers.length; i++) {
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("latitude")),
parseFloat(markers[i].getAttribute("longitude")));
var image = new google.maps.MarkerImage('http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=' + imgnum + '|FF0000|000000'
);
imgnum++;
var marker = new google.maps.Marker({
map: map,
position: point,
icon: image,
});
}
//var polylinep = [new google.maps.LatLng(parseFloat(markers[0].getAttribute("latitude")), parseFloat(markers[0].getAttribute("longitude"))),new google.maps.LatLng(parseFloat(markers[1].getAttribute("latitude")), parseFloat(markers[1].getAttribute("longitude")))];
for(var i = 0; i < markers.length; i++){
new google.maps.LatLng(parseFloat(markers[i].getAttribute("latitude")), parseFloat(markers[i].getAttribute("longitude")));
}
var polyline = new google.maps.Polyline({
path: polylinep,
geodesic: true,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2
});
polyline.setMap(map);
});
}
//Infowindow creator - unimplemented
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
}
//Get xml file
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {}
//]]>
</script>
感谢。
编辑:下面是一个使用PHP脚本生成的XML文件:
<markers>
<marker latitude="-4.06865" longitude="52.3994"/>
<marker latitude="-4.06865" longitude="52.3994"/>
<marker latitude="-4.06493" longitude="52.4162"/>
<marker latitude="-4.06493" longitude="52.4162"/>
</markers>
JSON是一个更容易格式阅读在JavaScript比XML。你的PHP可以生成JSON而不是XML吗?另外,你可以发布你的PHP输出(XML或JSON)的样本吗? –
@SteveJansen可能,但我不确定这会发生。此外,我花了一段时间试图实现我当前的代码,所以我不想。 – user3009227
然后你可以发布你的XML输出的样本吗? –