2011-11-18 58 views

回答

38

默認情況下,地圖會居中並縮放到的KML圖層內容的邊框。

您可以使用google.maps.KmlLayerOptions對象的preserveViewport屬性更改默認行爲。如果您將其設置爲true,則地圖不會居中放大。

在這個例子中,使用方法:

var nyLayer = new google.maps.KmlLayer(
        'http://www.searcharoo.net/SearchKml/newyork.kml', 
        { 
         suppressInfoWindows: true, 
         map: map, 
         preserveViewport: true 
        }); 

如果你想稍後居中並放大到KML圖層的內容,用途:

var bounds = nyLayer.getDefaultViewport(); 
map.fitBounds(bounds); 

編輯:

如果您希望地圖在加載kml圖層時始終居中(但不縮放),請利用事件google.maps.KmlLayer o bject。您必須將地圖中心設置爲kml圖層默認視口的中心。該事件在加載kml圖層的內容並計算其默認視口時觸發。

google.maps.event.addListener(nyLayer, 'defaultviewport_changed', function() { 
    var bounds = nyLayer.getDefaultViewport(); 
    map.setCenter(bounds.getCenter()); 
}); 
+0

謝謝,但是當我提出了更高的縮放級別說18,標記不變得可見,無論他們是不是在所有出現或者我需要到中心他們,使他們看到,我怎麼總是確保標記出現在中心附近的地圖上 – Mike

+0

我更新了答案。現在,您可以將地圖立即集中到kml圖層中標記的位置。 – Tomik

+0

其實我在地圖上有一些標記,取決於位置,在頁面加載時,我應該能夠看到所有的標記,如果我點擊某個特定市場附近的某個地方,我希望它可以縮放。此外,我更新了代碼,但它看起來像是採取了錯誤的js文件: http://jsfiddle.net/WPXWX/1/ – Mike

相關問題