我如何在KML文件中指定谷歌地图的缩放级别,或者为什么加载此文件时我的缩放级别会被覆盖。我的问题实际上是如何控制以下链接中地图的缩放:
http://code.google.com/apis/maps/documentation/javascript/examples/layer-kml-features.html
我如何在KML文件中指定谷歌地图的缩放级别,或者为什么加载此文件时我的缩放级别会被覆盖。我的问题实际上是如何控制以下链接中地图的缩放:
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
对象的defaultviewport_changed
事件。您需要将地图中心设置为kml图层默认视口的中心。当kml图层的内容被加载并且其默认视口被计算时,该事件将被触发。
google.maps.event.addListener(nyLayer, 'defaultviewport_changed', function() {
var bounds = nyLayer.getDefaultViewport();
map.setCenter(bounds.getCenter());
});