【发布时间】:2011-03-12 12:41:09
【问题描述】:
我正在尝试从 XML 文件中提取名称和卫星坐标,然后将它们插入到带有标记的 Google 地图概览中,但我遇到了困难。
我已经有了 php 代码,我可以在其中提取我需要的元素,但从那里开始将它们实际插入谷歌地图是我头疼的地方。
我找到并试用了这段代码:
<script src="http://maps.google.com/maps?file=api&v=2&key=my_google_api_key" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var map = null;
var geocoder = null;
function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
geocoder = new GClientGeocoder();
// my XML file
GDownloadUrl("maste.xml", function(data) {
var xml = GXml.parse(data);
//MasteIBrug is the tag around each child
var markers = xml.documentElement.getElementsByTagName("MasteIBrug");
for (var i = 0; i < markers.length; i++) {
//Positionsvejnavn is my first attribute in the XML file
var name = markers[i].getAttribute("Positionsvejnavn");
//Geografisk_placering is my second attribute in the XML file
var coordination = markers[i].getAttribute("Geografisk_placering");
showCoor(coordination,name);
}
});
}
}
function showCoor(coordination, name) {
if (geocoder) {
geocoder.getLatLng(
name+","+coordination,
function(point) {
if (!point) {
alert(coordination + " not found");
} else {
map.setCenter(point, 13);
var marker = createMarker(point, name, coordination);
map.addOverlay(marker);
}
});
}
}
function createMarker(point, name, coordination) {
var marker = new GMarker(point);
var html = "<b>" + name + "</b> <br/>" + coordination;
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html);
});
return marker;
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div>
<div id="map" style="width: 1000px; height: 600px"></div>
</div>
</body>
这是我第一次使用 Google 地图 API,所以我可能有问题或使用错误的代码来创建,但我似乎无法进一步了解。
非常感谢任何帮助或建议。
【问题讨论】:
-
那么发生了什么?出了什么问题?
-
好吧,其实没什么。它在地图周围或地图所在的位置绘制框架,但仅此而已。没有错误或任何东西。我猜它不会从 XML 文件中加载数据
标签: php xml google-maps google-maps-api-3 coordinates