2012-03-06 95 views
0

我知道這裏有一些例子,但是我不能讓它與我的腳本一起工作。我意識到你需要製造一個界限,但它不想工作。居中多個標記Google API v3

這裏是我的代碼:

<script type="text/javascript"> 
    var infowindow; 
    var map; 

    function initialize() { 
    var myLatlng = new google.maps.LatLng(37.4419, -122.1419); 
    var myOptions = { 
     zoom: 13, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    downloadUrl("include/moredata.xml", function(data) { 
     var markers = data.documentElement.getElementsByTagName("marker"); 
     for (var i = 0; i < markers.length; i++) { 
     var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")), 
            parseFloat(markers[i].getAttribute("lng"))); 
     var marker = createMarker(markers[i].getAttribute("name"), latlng); 
     } 
    }); 
    } 

    function createMarker(name, latlng) { 
    var marker = new google.maps.Marker({position: latlng, map: map}); 
    google.maps.event.addListener(marker, "click", function() { 
     if (infowindow) infowindow.close(); 
     infowindow = new google.maps.InfoWindow({content: name}); 
     infowindow.open(map, marker); 
    }); 
    return marker; 
    } 

    function AutoCenter() { 
    // Create a new viewpoint bound 
    var bounds = new google.maps.LatLngBounds(); 
    // Go through each... 
    $.each(markers, function (index, marker) { 
    bounds.extend(marker.position); 
    }); 
    // Fit these bounds to the map 
    map.fitBounds(bounds); 
    } 

</script> 

起初我還以爲是因爲我宣佈我的選擇中心和縮放,但即使採取這些出來後,我的地圖沒有露面。請幫助???謝謝!

+0

是您對標記或問題所有的地圖都沒有顯示? – 2012-03-06 06:22:42

+0

對不起,我想讓地圖居中放大到標記圖。現在地圖應該顯示出來。 – 2012-03-06 06:28:46

+0

第一部分放在你的'initialize function'中,第二部分放在你的for(...){'循環中,在你定義了標記之後,第三部分放在你的'$ .each'循環中替換'bounds .extend(marker.position)'。如果你有真正的問題,我可以在一個非常簡潔的版本中發佈代碼,如果你可以給我一個XML的視圖。 – martin 2012-03-07 05:22:02

回答

0

首先建立一個數組:

var realMarkers = []; 

然後推標記入陣:

var marker = createMarker(markers[i].getAttribute("name"), latlng); 
realMarkers.push(marker); 

然後當你循環realMarkers:

bounds.extend(marker.getPosition()); 
+0

對不起馬丁,我仍然對將這些代碼放在哪裏感到困惑。 – 2012-03-06 17:02:39

相關問題