将图块的可视部分限制为Leaflet中的多边形区域?

时间:2014-01-30 12:07:47

标签: javascript map leaflet geojson

在Leaflet中,如何将图块的可视部分限制为多边形(或geojson)中包含的区域,即多边形与下方图块之间的交点。

使用示例:仅显示一个国家/地区并隐藏所有其他国家/地区。

编辑:我不是在寻找fitBounds / setMaxBounds方法,而是为了只显示多边​​形的内部区域。

2 个答案:

答案 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图层可能会满足您的需求。您可以将其传递给多边形或多边形,它会遮挡地图的所有其他区域。