了解Google地图" fitBounds"方法

时间:2015-10-21 08:15:28

标签: javascript google-maps google-maps-api-3

我只想澄清我的理解方式是否正确。在我的Google地图应用中,我想向用户展示来自特定大洲的标记。

问题:我认为Google Map API中的界限是由 NOT MORE AND NOT LESS 而不是两个点(标记)组成的区域?

从数学课程到绘制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);

2 个答案:

答案 0 :(得分:3)

是的,你大多是正确的。除了Google地图中的“绑定”外,案例中还可以包含多个点,例如,如果您在上方图片的正方形中间有一个点,而另一个点位于中间正方形的底部,您仍会得到与您在上面绘制的相同的区域,但在编辑的地图中有3个点。

Map showing bounds with 3 points

文档的强制性链接:) https://developers.google.com/maps/documentation/javascript/reference?hl=en

答案 1 :(得分:1)

你不应该考虑"左上角"和"右下角"但是,如西南和东北(如果您愿意,可以选择左下角和右上角),因为这些是用于创建和/或检索边界对象的坐标。

请参阅documentation以及getNorthEastgetSouthWest方法。

这两个点是LatLng个对象,而不是标记。例如,使用LatLng对象在地图上放置标记。

我不知道您的用例以及您存储数据的方式,但可能有更精确的方式来显示"欧洲"标记。例如,您可以将区域与每个标记一起保存,这样您就可以查询" EU"标记而不是其他...