在Leaflet中,如何将图块的可视部分限制为多边形(或geojson)中包含的区域,即多边形与下方图块之间的交点。
使用示例:仅显示一个国家/地区并隐藏所有其他国家/地区。
编辑:我不是在寻找fitBounds / setMaxBounds方法,而是为了只显示多边形的内部区域。
答案 0 :(得分:1)
您可以使用map.setMaxBounds(L.latLngBounds)
方法来限制视图。
限制地图视图:
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以使用多边形并隐藏除了这个三角形之外的所有世界。唯一的问题是在缩放过程中你仍然可以看到地图的其他部分。 jsfiddle2
答案 1 :(得分:0)
延迟回复,但对于其他人来说,Leaflet Boundary Canvas图层可能会满足您的需求。您可以将其传递给多边形或多边形,它会遮挡地图的所有其他区域。