如何仅在Leaflet中的FeatureGroup元素内绘制地图图层?

时间:2017-06-06 09:00:03

标签: leaflet

例如,我有两个地图图层:打开街道地图和我们自己的地图图层。两者都可以这样定义:

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a>'
}).addTo(mapObject);

问题在于我不需要在整个地图上绘制第二层,而只需在L.FeatureGroup的内部元素中绘制:

var drawnItems = new L.FeatureGroup().addTo(mapObject);

特别是在多边形,矩形等内部......这可能与传单有关吗?如果是的话,如何实现这一目标?

感谢。

1 个答案:

答案 0 :(得分:1)

一种方法是使用bounds option of your L.TileLayer,即:

var drawnItems = new L.FeatureGroup( .... );

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: ...,
    bounds: drawnItems.getBounds()
}).addTo(mapObject);

另一种方法是查看list of plugins for tile display,并使用TileLayer.BoundaryCanvasleaflet-tilelayer-mask(请记住,更多插件可能适用,并且将来可能会出现更多插件)。