使用 kml 文件时,Google 地图缩放被覆盖
Posted
技术标签:
【中文标题】使用 kml 文件时,Google 地图缩放被覆盖【英文标题】:Google Maps zoom gets overridden, when using a kml file 【发布时间】:2012-01-01 12:52:57 【问题描述】:如何在 kml 文件中指定 google 地图的缩放级别,或者为什么在加载此文件时我的缩放级别会被覆盖。我的问题实际上是如何控制以下链接的地图缩放:
http://code.google.com/apis/maps/documentation/javascript/examples/layer-kml-features.html
【问题讨论】:
【参考方案1】:默认情况下,地图居中并缩放到 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());
);
【讨论】:
谢谢,但是当我设置更高的缩放级别比如 18 时,标记不会变得可见,要么它们根本不出现,要么我需要将它们居中以使它们可见,我怎么总是使确保标记出现在靠近中心的地图中 我更新了答案。现在,您可以立即使地图以 kml 图层中的标记位置为中心。 实际上我在地图上根据位置有某些标记,在页面加载时,我应该能够看到所有标记,如果我单击特定市场附近的某个地方,我希望它放大.我也更新了代码,但看起来它使用了错误的 js 文件:jsfiddle.net/WPXWX/1 我想你应该把它作为一个新问题发布,它离你原来的问题太远了。 好的,但我感谢您在这方面的帮助。有了我的第一个问题,我的小提琴正确吗以上是关于使用 kml 文件时,Google 地图缩放被覆盖的主要内容,如果未能解决你的问题,请参考以下文章
在谷歌地图上覆盖 ESRI shapefile 的最佳方法?