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