谷歌地图API V3:getBounds()转换fitBounds的结果()

Google Maps API V3: getBounds() convert result for fitBounds()

本文关键字:fitBounds 结果 转换 API getBounds 谷歌地图 V3      更新时间:2023-09-26

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

我使用的是谷歌地图API V3。当我写这个代码时:

map.fitBounds(map.getBounds());

地图缩小了

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

之后如何修改getBounds的结果以用于fitBounds而不产生缩放效果

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

提前感谢!

更新:

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

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

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

我遇到了完全相同的问题,并决定将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));