我正在使用Leaflet.js,并希望某种方式将地图置于我拥有的标记上,以便在页面启动时所有都在用户视图中。如果所有标记都聚集在一个小区域中,我希望地图缩小到仍然显示所有标记的水平。
我知道谷歌地图有自动中心功能,但我如何使用Leaflet.js进行此操作?
答案 0 :(得分:93)
您可以使用L.LatLngBounds创建要缩放的区域。
首先,创建一个边界并传递一个L.LatLngs数组:
var bounds = new L.LatLngBounds(arrayOfLatLngs);
这将创建一个边界,用于封装数组中包含的每个点。一旦有了边界,就可以拟合地图的边界以匹配您创建的边界:
map.fitBounds(bounds);
这将尽可能地缩放地图,同时仍然包含数组中的每个点。
或者,您也可以通过调用它并传入fitBounds
个对象数组来调用L.LatLng
方法。例如:
map.fitBounds([[1,1],[2,2],[3,3]]);
这将完全相同,无需创建特定的L.LatLngBounds
对象。