谷歌地图加载()启动

时间:2010-07-01 16:39:34

标签: google-maps

我目前正在开发一个应用程序,该应用程序从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();

    }
}

如果您需要更多信息,请与我们联系。非常感谢任何帮助。

2 个答案:

答案 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问题...只是说:)