2010-07-01 61 views
1

我目前正在從一個XML文件中拉取Google地圖位置並將它們加載到地圖中的應用程序。目前Load()函數附加到body標籤。 IOW,body onLoad =「load()」onunload =「GUnload()」。谷歌地圖加載()啓動

我正在PHP環境中工作,所以我創建了一個映射文件,我想將它包含在許多地方,頁面中,並將不同的參數傳遞給不同的地圖。

這就是說,我不知道如何啓動load()函數,除了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

我想通了。加載元素後,使用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(); 

    } 
} 

這是答案的問題。感謝所有看過的人。

0

無法抗拒評論說,你有一個基本的格式不正確,HTML的問題,如果你包括與另一body標籤頁內體標籤的網站...只是說:)

+0

明顯。這就是我發佈這個問題的原因。此評論沒有幫助。 – jmorhardt 2010-07-03 11:32:21

+0

是啊,得承認我誤讀你的帖子。 – Nicolas78 2010-07-24 10:14:44