我正在使用Google地图API V3。当我写这段代码时:
map.fitBounds(map.getBounds());
地图缩小!
我理解这是根据文档,因为fitBounds
确保在地图上显示给定的边界,以便所有边缘显示在里面地图中。因此,我正在寻找的答案如下:
基本上,我很确定这可以计算,因为这是地图的作用,但在相反的方向,添加边距时,完全显示给定的边界。在这些术语中,请告诉我如何计算边距(以及如何计算fitBounds
的{{1}}输出的正确输入,并且您的答案将被接受。
提前致谢!
缩放和中心检索和设置对我不起作用!这就是为什么:
我将在数据库中保存地图的视口信息。稍后,我想重新创建地图并再次显示完全相同的位置。但是,映射平台可能因用户而异。因此,缩放和居中在不同的映射平台/框架之间不是标准的,并且不能在具有相同结果的所有映射平台/框架中使用。因此,唯一的标准方法是保存数据库中的边界。所以这个问题需要完全按照它要求的方向给出答案。
答案 0 :(得分:1)
存储而不是限制地图的缩放和中心,并稍后恢复这些值。
答案 1 :(得分: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));