首页 / 浏览问题 / WebGIS / 问题详情
mapboxgl如何设置矢量瓦片点击高亮呢?
9EXP 2021年01月04日
我通过如下代码添加了矢量瓦片

var map = new mapboxgl.Map({
           container: 'map', // container id
           style: url+'/tileFeature/vectorstyles.json?type=MapBox_GL&styleonly=true',
           attributionControl: false,
           zoom: 7,
           crs: mapboxgl.CRS.EPSG4326,
       });  我想点击的时候高亮里面的图标 线 还有面等,怎么实现呢

1个回答

你好,您可以将你的需要高亮的source创建为一个layer添加到map中并且让它透明,给这个layer添加点击监听事件,通过map.setFilter进行过滤显示高亮显示来达到您的效果。
2,842EXP 2021年01月05日
你好,我看了一下,我的矢量地图有symbol,line,和polygon,你的意思是要创建三种图层分别对应高亮吗?
最主要是 我的mvt可能有五十个图层  如果是这样 是要创建50个对应的layer吗?
您50多个子图层的mvtr添加到地图后,咱们map设置过滤可以指定里面的子图层,比如 map.setFilter('test@test#1_红土', ["==", "区域","二区"]); 其中:test@test#1_红土    为图层名,

["==", "区域","二区"]        为表达式,意思为:显示 字段名 区域  等于  二区  的面要素,高亮效果参考map.getCanvas().style.cursor = 'pointer';
...