【问题标题】:Google Maps load() initiation谷歌地图 load() 启动
【发布时间】: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


    【解决方案1】:

    我想通了。加载元素后使用 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();
    
        }
    }
    

    这就是问题的答案。感谢所有观看的人。

    【讨论】:

      【解决方案2】:

      如果您将带有 body 标签的网站包含在带有另一个 body 标签的页面中,那么无法抗拒评论您有一个基本的 HTML 格式错误问题...只是说:)

      【讨论】:

      • 显然。这就是我发布问题的原因。此评论没有帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      • 1970-01-01
      相关资源
      最近更新 更多