使用kml文件时,Google地图缩放将被覆盖

问题描述:

如何在kml文件中指定谷歌地图的缩放级别,或者为什么当我加载此文件时,缩放级别变得过度。我的问题其实是如何控制地图以下链接变焦:使用kml文件时,Google地图缩放将被覆盖

http://code.google.com/apis/maps/documentation/javascript/examples/layer-kml-features.html

默认情况下,地图会居中并缩放到的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