mapbox按shilt拖动鼠标圈中地图获取要素





Highlight features within a bounding box







 

其中:

1.var canvas = map.getCanvasContainer();

该代码是获取地图dom结构对象,可以在上面加一些按键及鼠标监听

2.var rect = canvas.getBoundingClientRect();

该代码是获取一个dom结构在距离浏览器窗口上和左的距离,如下图所示:详情请见如下链接

https://www.webhek.com/post/getclientrects-getboundingclientrect.html

3.var filter = features.reduce(
                function(memo, feature) {
                    console.log('memo',memo);
                    memo.push(feature.properties.FIPS);
                    return memo;
                },
                ['in', 'FIPS']
              );

组成layer图层过滤器,reduce函数是一个累加器,回调函数中的memo其实就是reduce函数的第二个参数['in', 'FIPS'],

执行结果就是从数组features中提取FIPS属性值,push到['in', 'FIPS']中并返回结果给var filter

然后map.setFilter('counties-highlighted', filter);添加图层过滤器

 

 

 

 

你可能感兴趣的:(mapbox,mapbox,获取,reduce)