在Leaflet中,如何将图 block 的可视部分限制为多边形(或geojson)内包含的区域,即多边形与其下方图 block 之间的交集。
使用示例:仅显示一个国家/地区并隐藏所有其他国家/地区。
编辑:我不是在寻找 fitBounds/setMaxBounds 方法,而是在寻找一种仅显示多边形内部区域的方法。
最佳答案
您可以使用map.setMaxBounds(L.latLngBounds)
方法来限制 View 。
用于限制 map View :
map.fitBounds(polygon.getBounds()); // max zoom to see whole polygon
map.setMaxBounds(polygon.getBounds()); // restrict map view to polygon bounds
map.options.minZoom = map.getZoom(); // restrict user to zoom out
当您想恢复此状态时:
delete map.options.maxBounds; // remove the maxBounds object from the map options
map.options.minZoom = 0; // set min-zoom to 0 = no restriciton
我设置了一个 jsfiddle,您可以在其中看到行为:jsfiddle
编辑:
我已经更新了 jsfiddle 以使用多边形并隐藏除这个三 Angular 形之外的所有世界。唯一的问题是在缩放期间您仍然可以看到 map 的其他部分。 jsfiddle2
关于javascript - 将图 block 的可视部分限制为 Leaflet 中的多边形区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21456115/