使用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());
});
谢谢,但是当我提出了更高的缩放级别说18,标记不变得可见,无论他们是不是在所有出现或者我需要到中心他们,使他们看到,我怎么总是确保标记出现在中心附近的地图上 – Mike
我更新了答案。现在,您可以将地图立即集中到kml图层中标记的位置。 – Tomik
其实我在地图上有一些标记,取决于位置,在页面加载时,我应该能够看到所有的标记,如果我点击某个特定市场附近的某个地方,我希望它可以缩放。此外,我更新了代码,但它看起来像是采取了错误的js文件: http://jsfiddle.net/WPXWX/1/ – Mike