我目前正在开发一个应用程序,该应用程序从XML文件中提取Google Map位置并将其加载到地图中。目前,Load()函数附加到body标签。 IOW,body 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());
}); updatePoints();
}
}
如果您需要更多信息,请与我们联系。非常感谢任何帮助。
答案 0 :(得分:0)
我明白了。
加载元素后,使用Javascript运行window.onload = load所以:
<div id="map" style="width: 98%; height: 525px; float:left; margin: 0 1% 0 1%"></div>
<script type="text/javascript">
window.onload=load;
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());
});
updatePoints();
}
}
这就是问题的答案。感谢所有看过的人。
答案 1 :(得分:0)
无法拒绝评论您存在基本格式错误的HTML问题...只是说:)