巧用拷贝图层实现单图层数据切换

2019-03-12 10:15:33 浏览数 (3)

GIS里常有如下场景,点位不变,但是点位样式和事件处理需要根据交互或者关注的信息动态改变,类似Arcgis中的Symbol Render。通常情况下,我们需要将这些逻辑判断固定在js代码中来追踪当前用户处于哪个交互。举例如下:

点击AQI时,图标样式对应AQI分类,而且点击图标没有任何事件点击AQI时,图标样式对应AQI分类,而且点击图标没有任何事件
点击SO2时,图标样式对应SO2分类,而且鼠标经过时图标弹出一种div模板点击SO2时,图标样式对应SO2分类,而且鼠标经过时图标弹出一种div模板
点击PM2.5时,图标样式对应PM2.5分类,而且鼠标点击弹出另一种div模板点击PM2.5时,图标样式对应PM2.5分类,而且鼠标点击弹出另一种div模板

通常情况下,我们会基于一个图层这样做:

为PM2.5添加鼠标点击事件,设置一种弹窗模板为PM2.5添加鼠标点击事件,设置一种弹窗模板
为SO2添加鼠标经过事件,设置另一种弹窗模板为SO2添加鼠标经过事件,设置另一种弹窗模板

而且,我们为了改变图标样式,最低级做法,清除图层,用另一种样式来生成图层,高级的根据这个图层实现专题渲染(Symbol Render )或者在每一个marker上setSymbol。

假如我们全部通过配置文件来对图层生成样式和事件,面对同一图层多种表现形式这种需求怎么处理,答案很简单,还是这个图层,我们可以配置成多个图层,AQI就是AQI图层,PM2.5就是PM2.5图层,然后分别配置交互和样式即可。

0 人点赞