zoukankan      html  css  js  c++  java
  • arcgis api更改view事件

    1、前言

    用户触发事件一般是通过view交互,无法和map和layer直接交互。一般情况下,通过和view交互就可以满足平常的需求

    2、需求

    2.1 相同view中实现不同的点击事件

    • view绑定事件
    /* 为当前视图绑定click事件
     * 注意需要把绑定用变量保存 
     */
    let viewListener = currentView.on('click', function(data) {
    	console.log(`addViewListener`)
    })
    
    • view解除绑定
    // 保存的绑定变量viewListener只有一个方法,remove
    viewListener.remove();
    
    • view更新绑定
    // 首先判断绑定变量是否为空,若不为空则remove
    if(viewListener){
    	viewListener.remove();
    }
    // remove后为view重新绑定click事件
    viewListener = currentView.on('click', function(data) {
    	console.log(`addViewListener1`)
    })
    

    2.2 触发layer和map事件

    查看arcgis api 发现layer和map 是具有on方法的,就是说可以绑定事件,那么怎么触发layer 和 map的事件,layer与map事件触发有相似性,这里以layer举例

    • 为featureLayer绑定click事件
    // 初始化FeatureLayer
    const layer = FeatureLayer({
    	// 此处为自定义的feature的rest路径
    	url: this.mapService.featureLayer
    })
    // 当前地图添加FeatureLayer
    this.currentMap.add(layer);
    
    • 触发featureLayer 的click事件,可以在view的事件中触发,也可以在其他地方
    layer.emit('click');
    
    

    说明

    • arcgis api版本为4.11
    • 访问源码可访问gis-blog
  • 相关阅读:
    txt换行追加写入
    np.unique( )的用法
    生成自己想要的任意颜色的图片
    183. 木材加工
    575. 字符串解码
    364. 接雨水 II
    255. Multi-string search
    433. 岛屿的个数
    591. 连接图 III
    918. 三数之和
  • 原文地址:https://www.cnblogs.com/asdlijian/p/13514189.html
Copyright © 2011-2022 走看看