1

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

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

map.fitBounds(map.getBounds());

地图缩小了!

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

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

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

提前致谢!

更新:

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

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

4

2 回答 2

1

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

于 2013-10-26T20:44:28.533 回答
0

我遇到了完全相同的问题,并决定将 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));
于 2014-07-08T20:43:45.320 回答