【发布时间】:2014-01-26 15:18:21
【问题描述】:
我已经很接近让这个工作了
我的问题是:如何让谷歌地图读取存储在我的 ftp 服务器上的 data.xml 文件?
xml 文件如下所示:
<markers>
<marker>
<lat>57.709</lat>
<lng>11.9799</lng>
</marker>
<marker>
<lat>57.6468</lat>
<lng>11.9961</lng>
</marker>
</markers>
这是地图的代码:
<script
src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false">
</script>
<script type="text/javascript">
function initialize() {
var myLatlng = new google.maps.LatLng(57.4419, 11.1419);
var myOptions = {
zoom: 20,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
downloadUrl("data.xml", function(data) {
var markers = data.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var marker = new google.maps.Marker({position: latlng, map: map});
}
});
}
</script>
这是 XML 文件的 PHP 代码:
$xml="<markers>\n\t\t";
while($data=mysql_fetch_array($result))
{
$xml .="<marker>\n\t\t";
$xml .= "<lat>".$data['latitude']."</lat>\n\t\t";
$xml .= "<lng>".$data['longitude']."</lng>\n\t\t";
$xml .="</marker>\n\t";
}
$xml.="</markers>\n\r";
$handle = fopen('data.xml', 'w') or die('Cannot open data.xml');
fwrite($handle, $xml);
它保存为 data.xml,我的地图应该会加载它,但没有显示任何标记。
感谢对此的任何回应。
【问题讨论】:
-
lat & lng 不是
<marker>元素的属性。 -
哦,那么
元素的属性是什么? -
你的xml没有。
<marker lat="xx.xx" lng="xx.xx"></marker>是属性。
标签: php mysql xml google-maps google-maps-api-3