谷歌地图v3的fitBounds()bounds,padding:number不起作用。

3

我正在努力理解fitBounds()方法中padding选项的确切含义。

map.fitBounds(bounds, 100);

据这里的文档所述,选项100据说会添加填充(至少我是这样读的): https://developers.google.com/maps/documentation/javascript/reference 但是,除非以100为增量,否则我添加的各种数字似乎都没有任何作用(在我的使用项目中),这太多了。我设置了一个JS小工具来展示填充选项的功能:http://fiddle.jshell.net/sc9bc4ab/
它们似乎因实现而异,但它们有相同的问题,即一旦达到某个特定数值,就会出现“跳跃”的情况。
我的问题是填充选项实际上是做什么的?它似乎非常不一致。如果在fiddle中为10或20或30,则似乎保持不变,当您达到40时,事情就会发生变化。我还尝试过{padding:50}{padding:[50,50]},但关于这个特殊问题的信息并不多。
1个回答

5
Google Maps API 实现了一种离散缩放级别的系统(单击缩放按钮,可以注意到地图会跳跃相当大的距离)。
有两种方法可以确保在地图中显示特定的边界框:
1. 调整地图元素的大小 - 这可能会影响页面的布局,因此是一个不好的选择。 2. 将地图居中于范围,并选择一个“最佳”缩放级别,以使该边界框适合地图元素的大小。这就是 API 所做的。
你看到的效果是,当你使用 40 的填充时,地图会跳跃,因为这是会导致缩放级别完整变化的最小填充量。由于 API 不支持分数缩放,小于此数量的任何填充都不会导致地图外观发生变化。

2
因此,这里关注填充只影响缩放级别。将其作为选项似乎有点无用,因为您永远不会真正知道适当的填充量以影响缩放。然而,您可以猜测,直到“最佳”显示相对于缩放是适当的。感谢您的出色解释! - lscmaro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接