【问题标题】:get google map zoom level when using fitBounds使用 fitBounds 时获取谷歌地图缩放级别
【发布时间】:2012-12-06 15:25:49
【问题描述】:

我想获取谷歌地图当前的缩放级别,它给了我未定义的错误,我想是因为我没有在我的地图创建选项中使用明确的缩放级别,而是使用 map.fitBounds,我怎样才能获得谷歌地图缩放我使用 map.fitBounds 时的水平?

这是我的代码摘要:

var mapOptions = { mapTypeId: google.maps.MapTypeId.ROADMAP };

map =  new google.maps.Map(document.getElementById("map_canvas"), mapOptions);

map.fitBounds(bounds);
map.panToBounds(bounds);

现在,当我想使用 map.getZoom() 时,我得到了未定义,似乎 getZoom 只返回显式设置的缩放级别

【问题讨论】:

  • 我们能看看你目前使用的是什么代码吗?
  • 向我们展示您在代码中使用 getZoom 的位置。可能是 map 未定义,因为您试图通过创建它的函数来访问它
  • 我在map.panToBounds(bounds)之后使用map.getZoom(),我的地图定义在这里

标签: asp.net google-maps


【解决方案1】:

Google Maps API v3 是基于事件的。当新的缩放级别可供查询时,将触发 zoom_changed 事件。

要获得新的缩放,请执行以下操作:

google.maps.event.addListener(map, "zoom_changed", function() {
  alert("the zoom level is now "+map.getZoom());
});

请注意,每次更改缩放时都会触发。

【讨论】:

  • 谢谢,但它什么也没做,请看这个小提琴:jsfiddle.net/KwayW/26
  • 谢谢,我使用了 fitBounds,但正如你所见,我的缩放级别不是真的 FIT,我仍然可以再次放大,我的标记仍然可见,是不是 google map 错误?我该如何解决?
  • 所有 fitBounds 所做的就是保证完整的边界将在地图上可见。看起来它正在为控件的左边缘留出空间。
猜你喜欢
  • 2012-11-26
  • 2012-09-08
  • 2013-12-31
  • 2011-06-13
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
相关资源
最近更新 更多