理解谷歌地图的“fitBounds”方法

4

我只是想澄清一下我的理解是否正确。在我的Google Maps应用程序中,我想向我的用户展示特定大陆的标记。

问题:我是否正确地理解了谷歌地图API中的边界是由不多不少两个点(标记)组成的区域?

从数学课上来看,绘制2D区域只需要两个点。对吧?所以要向用户展示来自欧洲的所有标记,我只需找到两个坐标,一个来自冰岛(左上角),另一个来自东南土耳其?(对于美国,我会选择西雅图和迈阿密)

enter image description here

所以,下面的JS代码运行得很完美。我的问题是 - 你能确认我的理解方式和我选择的方法是正确的吗?它有任何意义吗?

var bounds = new google.maps.LatLngBounds();

bounds.extend(new google.maps.LatLng('66.057878', '-22.579047')); // Iceland
bounds.extend(new google.maps.LatLng('37.961952', '43.878878')); // Turkey

this.map.fitBounds(bounds);

1
我不明白为什么人们投票关闭这个话题。 - Matt Komarnicki
2个回答

3

是的,你大部分是正确的。但在谷歌地图的情况下,“边界”可以包含多个点,例如如果你在上面图片中的正方形中间有一个靠右边缘的点和另一个在底部中间的点,你仍然会得到与你上面绘制的相同的区域,但是有3个点,就像编辑后的地图一样。

Map showing bounds with 3 points

必须提供文档链接 :) https://developers.google.com/maps/documentation/javascript/reference?hl=en


1
你不应该把“top-left”和“bottom-right”看作是南西和东北(如果你愿意,可以看作是bottom-left和top-right),因为这些坐标被用来创建和/或检索边界对象。
请参阅文档以及getNorthEastgetSouthWest方法。
这两个点是LatLng对象,而不是标记。例如,一个标记使用LatLng对象定位在地图上。
我不知道你的用例和数据存储方式,但可能有更精确的方法来显示“欧洲”标记。例如,你可以保存每个标记的区域,这样你就可以查询“EU”标记而不是其他标记...

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