Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Maps API V3:getBounds()转换fitBounds()的结果 不,上面的答案不能回答我的问题。请阅读我下面的更新,看看为什么这是一个不同的情况下澄清!!!_Javascript_Google Maps_Google Maps Api 3_Zooming - Fatal编程技术网

Javascript Google Maps API V3:getBounds()转换fitBounds()的结果 不,上面的答案不能回答我的问题。请阅读我下面的更新,看看为什么这是一个不同的情况下澄清!!!

Javascript Google Maps API V3:getBounds()转换fitBounds()的结果 不,上面的答案不能回答我的问题。请阅读我下面的更新,看看为什么这是一个不同的情况下澄清!!!,javascript,google-maps,google-maps-api-3,zooming,Javascript,Google Maps,Google Maps Api 3,Zooming,我正在使用谷歌地图API V3。当我编写此代码时: map.fitBounds(map.getBounds()); 地图缩小了 我理解这是根据文档进行的,因为fitBounds确保在地图上显示给定的边界,以便所有边都显示在地图内。因此,我要寻找的答案是: 如何修改getBounds的结果以用于fitBounds,而不产生缩放效果? 基本上,我很确定这是可以计算出来的,因为这就是地图的作用,但在相反的方向上,当添加边距时,完全显示给定的边界。在这些术语中,请告诉我如何计算边距(因此,如何计算从g

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

map.fitBounds(map.getBounds());
地图缩小了

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

如何修改getBounds的结果以用于fitBounds,而不产生缩放效果? 基本上,我很确定这是可以计算出来的,因为这就是地图的作用,但在相反的方向上,当添加边距时,完全显示给定的边界。在这些术语中,请告诉我如何计算边距(因此,如何计算从
getBounds
输出的
fitbunds
的正确输入),您的答案将被接受

提前谢谢

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


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

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

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

我遇到了完全相同的问题,决定缩小边界框由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));

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


为了什么目的?如果不想更改视口,请什么也不做。或者您是否存储了边界并在以后使用它们来恢复以前的视口?这是为了更简单地解释计算需要。事实上,我需要将当前视口存储在数据库中,然后在再次访问页面后将其显示出来。可能重复为什么要进行向下投票?我不明白向下投票有什么问题。我希望仍然有人能够阅读并回答这个问题。我认为这个问题很清楚,足以理解我需要什么作为答案。目的是什么?如果不想更改视口,请什么也不做。或者您是否存储了边界并在以后使用它们来恢复以前的视口?这是为了更简单地解释计算需要。事实上,我需要将当前视口存储在数据库中,然后在再次访问页面后将其显示出来。可能重复为什么要进行向下投票?我不明白向下投票有什么问题。我希望仍然有人能够阅读并回答这个问题。我认为这个问题已经足够清楚,可以理解我需要什么作为答案。这是行不通的,因为在这种情况下,我必须使用谷歌地图平台。需要以标准格式存储数据,该格式可以在任何类型的地图中显示。谷歌的缩放系统并不是一个被广泛接受的标准。然后根据使用的平台存储边界、缩放和居中,并还原值。告诉我如何为谷歌平台恢复它。这就是问题所在。存储缩放不是一个选项。抱歉。要更详细地解释此解决方案不起作用的原因(因为我似乎很固执,不想接受):假设该位置是从另一个映射平台保存的。在这种情况下,即使我们在数据库中有缩放级别和边界,也只有边界保存有价值的信息。缩放级别特定于具体的贴图平台。边界更特定于贴图的大小。假设所有平台上的所有地图都具有相同的大小,那么在使用fitBounds()后增加google maps实现的缩放就足够了,因为在这种情况下,我绑定到google maps平台。需要以标准格式存储数据,该格式可以在任何类型的地图中显示。谷歌的缩放系统并不是一个被广泛接受的标准。然后根据使用的平台存储边界、缩放和居中,并还原值。告诉我如何为谷歌平台恢复它。这就是问题所在。存储缩放不是一个选项。抱歉。要更详细地解释此解决方案不起作用的原因(因为我似乎很固执,不想接受):假设该位置是从另一个映射平台保存的。在这种情况下,即使我们在数据库中有缩放级别和边界,也只有边界保存有价值的信息。缩放级别特定于具体的贴图平台。边界更特定于贴图的大小。假设所有平台上的所有地图都具有相同的大小,在使用fitBounds()
getNorthEast().k
:D
getNorthEast().k
:D之后,在google地图实现上增加缩放就足够了