谷歌地图 v3 fitBounds() 边界,填充:数字不起作用

lsc*_*aro 3 javascript google-maps google-maps-api-3

我试图了解 fitBounds() 方法的填充选项究竟做了什么。

map.fitBounds(bounds, 100);
Run Code Online (Sandbox Code Playgroud)

根据此处的文档,据说 100 的选项会添加填充(至少我是这么读的):https : //developers.google.com/maps/documentation/javascript/reference

但是我添加了各种数字并且似乎没有得到任何东西(在我的使用项目中),除非它以 100 为增量,这太多了。我设置了一个 JS 小提琴来显示这里填充选项的功能:http : //fiddle.jshell.net/sc9bc4ab/

它们似乎每个实现都不同,但是一旦你达到某个数值,它们就会有相同的“跳跃”问题。

我的问题是填充选项实际上有什么作用?看起来很不一致。如果它是 10 或 20 或 30 小提琴它似乎保持不变,当你击中 40 东西跳。我也尝试过{padding:50}{padding:[50,50]}只是没有很多关于这个特定问题的信息。

ple*_*xer 5

Google Maps API 实现了一个谨慎的缩放级别系统(单击放大/缩小按钮并注意地图跳跃相当大的数量)。

API 可以使用两种方法来确保特定的边界框显示在地图中:

  1. 调整地图元素的大小 - 这可能会扰乱您的页面布局,因此是一个糟糕的选择。

  2. 使地图在边界上居中,然后在地图元素的大小内选择“最”适合该边界框的缩放级别。就是 API 所做的。

您所看到的效果,当您使用 40 的填充时,地图会跳跃,这是因为这是导致缩放级别更改完整整数值的最小填充量。由于 API 不支持部分缩放,任何小于此数量的值都不会导致地图外观发生变化。

  • 所以这里对填充的关注实际上只影响缩放级别。将其作为选项似乎有点无用,因为您永远不会真正知道影响缩放的正确填充量是多少。再说一次,您可以猜测直到“最佳”显示相对于缩放是合适的。感谢您的精彩解释! (2认同)