【发布时间】:2010-07-01 16:39:33
【问题描述】:
我目前正在开发一个从 XML 文件中提取 Google 地图位置并将其加载到地图中的应用程序。目前 Load() 函数附加到 body 标记。 IOW,正文 onLoad="load()" onunload="GUnload()"。
我在 PHP 环境中工作,所以我创建了一个执行映射的文件,我想将它包含在许多地方、页面中,并为不同的地图传递不同的参数。
也就是说,我不确定如何启动 load() 函数,除了在 body 标记上。当然,如果我只是将文件包含在不同的页面中,那将是一个问题,因为第二个 body 标记会使我的 HTML 无效。
这是加载函数:
function load() {
if (isCompatible) {
// Create Map
map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(40, -90), 3);
// Add controls
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
resetPolygon();
GDownloadUrl("<?php echo $XML; ?>", function(data) {
var xml = GXml.parse(data);
var markers_xml = xml.documentElement.getElementsByTagName("marker");
var bounds = new GLatLngBounds();
for (var i = 0; i < markers_xml.length; i++) {
var listid = markers_xml[i].getAttribute("lid");
var voterid = markers_xml[i].getAttribute("voterid");
var contacted = markers_xml[i].getAttribute("contacted");
var name = markers_xml[i].getAttribute("name");
var address = markers_xml[i].getAttribute("address");
var type = markers_xml[i].getAttribute("type");
var iconcolor = markers_xml[i].getAttribute("iconcolor");
var point = new GLatLng(parseFloat(markers_xml[i].getAttribute("lat")),
parseFloat(markers_xml[i].getAttribute("lng")));
if(contacted == '2'){
var thecolor = "#CCCCCC"
}else{
var thecolor = iconcolor
}
var marker = createMarker(point, voterid, name, address, type, thecolor, listid);
map.addOverlay(marker);
bounds.extend(point);
markers.push(marker);
markers[i].voterid = voterid;
markers[i].contacted = contacted;
}
map.setZoom(map.getBoundsZoomLevel(bounds));
map.setCenter(bounds.getCenter());
}); 更新点();
}
}
如果您需要更多信息,请告诉我。非常感谢任何帮助。
【问题讨论】:
标签: google-maps