【问题标题】:Google Maps API V3: getBounds() convert result for fitBounds()Google Maps API V3:getBounds() 为 fitBounds() 转换结果
【发布时间】:2013-11-05 20:29:03
【问题描述】:

不,以上答案不能回答我的问题。请阅读下面的更新以了解为什么这是不同的情况!!!

我正在使用 Google 地图 API V3。当我写这段代码时:

map.fitBounds(map.getBounds());

地图缩小!

我知道这是根据文档,因为fitBounds 确保在地图上显示给定的边界,以便所有边缘都显示在地图内部。因此,我正在寻找的答案在于:

如何修改getBounds的结果用于fitBounds之后没有缩放效果?

基本上,我很确定这是可以计算出来的,因为地图就是这样做的,但是在相反的方向上,当添加边距时,可以完全显示给定的边界。用这些术语,告诉我如何计算边距(因此,如何计算fitBounds 的正确输入,输出来自getBounds),您的答案将被接受。

提前致谢!

更新:

缩放和中心检索和设置对我不起作用!原因如下:

我将在数据库中保存地图的视口信息。稍后,我想重新创建地图并再次显示完全相同的位置。但是,映射平台可能因用户而异。因此,缩放和居中在不同的映射平台/框架之间不是标准的,不能在所有这些平台/框架中使用并获得相同的结果。因此,唯一的标准方法是在数据库中保存边界。所以这个问题需要一个与它所要求的方向完全一致的答案。

【问题讨论】:

  • 为了什么目的?当您不想更改视口时,什么也不做。还是您存储了边界并在以后使用它们来恢复以前的视口?
  • 这是为了更简单地解释计算需要。实际上,我需要将当前视口存储在数据库中,然后在再次访问页面时将其显示回来。
  • 为什么要投反对票?
  • 我不明白反对票有什么问题。我希望 SO 仍然有能够阅读并回答问题的人。我认为这个问题足够清楚,可以理解我需要什么作为答案。

标签: javascript google-maps google-maps-api-3 zooming


【解决方案1】:

存储地图的缩放和中心而不是边界,并在以后恢复这些值。

【讨论】:

  • 那行不通,因为在这种情况下,我绑定到谷歌地图平台。需要以可以在任何类型的地图中显示的标准格式存储数据。 Google 的缩放系统不是一个被广泛接受的标准。
  • 然后根据使用的平台存储边界、缩放和居中并恢复值。
  • 没错。告诉我如何为谷歌平台恢复它。这就是问题所在。存储变焦不是一种选择。对不起。
  • 更详细地解释为什么这个解决方案不起作用(因为它可能看起来我很固执并且不想接受):假设该位置是从另一个地图平台保存的。在这种情况下,即使我们在数据库中有缩放级别和边界,也只有边界保存有价值的信息。缩放级别特定于具体的映射平台。
  • 边界更具体...地图的大小。假设所有平台上的所有地图都具有相同的大小,那么当您在使用 fitBounds() 后增加 google-maps-implementation 的缩放时就足够了
【解决方案2】:

我遇到了完全相同的问题,并决定将 getBounds() 产生的边界框缩小 15%。这对我来说很好:

var neLat = map.getBounds().getNorthEast().k;
var neLong = map.getBounds().getNorthEast().B;
var swLat = map.getBounds().getSouthWest().k;
var swLong = map.getBounds().getSouthWest().B;

var boundingBoxPerc = 0.15;
var mapWidth = neLong - swLong;
var mapHeight = neLat - swLat;

var ne = new google.maps.LatLng(neLat - mapHeight * boundingBoxPerc, neLong - mapWidth * boundingBoxPerc);
var sw = new google.maps.LatLng(swLat + mapHeight * boundingBoxPerc, swLong + mapWidth * boundingBoxPerc);
map.fitBounds(new google.maps.LatLngBounds(sw, ne));

【讨论】:

  • getNorthEast().k:D
猜你喜欢
  • 2011-02-19
  • 1970-01-01
  • 2013-02-24
  • 2011-03-16
  • 2012-07-01
  • 2018-02-09
  • 2012-01-25
  • 1970-01-01
  • 2015-08-27
相关资源
最近更新 更多