【发布时间】:2012-04-06 10:42:39
【问题描述】:
今天的问题是这样的:
GDownloadUrl("http://www.mysite/map.php",
function(data) {
var xml = GXml.parse(data);
//var markers = xml.documentElement.getElementsByTagName("marker");
//for (var i = 0; i < markers.length; i++) {
//var address = new GLatLng(parseFloat(markers[i].getAttribute("location")));
//var latlong = address.split(",");
//var latlongtomap = new GLatLng(parseFloat(latlong[0]), parseFloat(latlong[1]));
var latlongtomap = new GLatLng(51.477711,-3.176555);
var marker = createMarker(latlongtomap);
map.addOverlay(marker);
// }
});
}
}
如果我运行它,它将获取纬度和经度坐标并为我在地图上创建一个标记。但是,如果我尝试从我的 php 脚本中获取“位置”选项卡(使用所有注释掉的代码):
map.php
<?php
mysql_connect("", "", "") or die(mysql_error());
mysql_select_db("") or die(mysql_error());
$query = "SELECT MAPADDRESS FROM report";
$result = mysql_query($query) or die(mysql_error());
$doc = new DomDocument('1.0');
$node = $doc->createElement("markers");
$parnode = $doc->appendChild($node);
header("Content-type: text/xml");
while($row = mysql_fetch_array($result)){
$node = $doc->createElement("marker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("location", $row['MAPADDRESS']);
}
print $doc->saveXML();
?>
结果如下:
<markers>
<marker location="51.477711,-3.176555"/>
<marker location="51.472512,-3.187527"/>
<marker location="51.471057,-3.186263"/>
<marker location="51.473261,-3.192219"/>
</markers>
为什么代码不能正确读取这个 PHP?
【问题讨论】:
-
请注意,您使用的是 Maps API 的第 2 版,但该版本已被弃用,最早可能在明年关闭。
标签: javascript html xml google-maps xml-parsing