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
posted @ 2019-07-28 14:32  mangata  阅读(467)  评论(0编辑  收藏  举报