event~EventManager()

事件管理类,提供注册事件、取消注册事件、派发事件的功能。hmap全局维护一个事件管理类实例。
使用register addListener接口 注册相对应的事件,注册的事件会缓存到事件观察器中。
使用unRegister removeListener接口 移除事件观察器中对应的事件。
使用 dispatch fire接口 派发事件,HMap2.1 包含以下事件:
鼠标键盘事件,通过register方法注册, unRegister方法取消注册, fire方法触发。
其它事件,通过addLisenter方法注册, removeLisenter方法取消注冊, dispatch方法触发。

需要通过register方法注册(鼠标键盘触摸事件)的有以下13种类型:
1."MAPMOUSEEVENT_CLICK": 鼠标在地图上单击触发
2."MAPMOUSEEVENT_DOUBLECLICK": 鼠标在地图上双击时触发
3."MAPMOUSEEVENT_MOUSEDOWN": 鼠标在地图上摁下时触发
4."MAPMOUSEEVENT_MOUSEMOVE": 鼠标在地图上移动时触发
5."MAPMOUSEEVENT_MOUSEOUT": 鼠标移出地图时触发
6."MAPMOUSEEVENT_MOUSEOVER": 鼠标移入地图上时触发
7."MAPMOUSEEVENT_MOUSEUP": 鼠标地图上释放时触发
8."MAPMOUSEEVENT_MOUSEWHEEL": 在地图上滚动鼠标滚轮时触发
9."MAPTOUCHEVENT_TOUCHSTART": 手指在地图上触摸开始时触发
10."MAPTOUCHEVENT_TOUCHMOVE": 手指在地图上移动时触发
11."MAPTOUCHEVENT_TOUCHEND": 手指在地图上移动结束时触发
12."MAPKEYEVENT_KEYDOWN": 键盘按下时触发
13."MAPKEYEVENT_KEYUP": 键盘抬起时触发
需要通过addListener方法添加监听(非鼠标键盘触摸事件)的有以下11种类型:
1."MAPEVENT_MOVESTART": 注册后,开始拖动地图触发
2."MAPEVENT_MOVING":" 注册后,拖动地图过程中触发
3."MAPEVENT_MOVEEND": 注册后,拖动地图结束触发
4."MAPEVENT_ZOOMSTART": 地图开始缩放触发
5."MAPEVENT_ZOOMING": 地图缩放过程中触发
6."MAPEVENT_ZOOMEND": 地图缩放结束触发
7."MAPEVENT_ROTATESTART": 地图旋转开始触发
8."MAPEVENT_ROTATING": 地图旋转过程中触发
9."MAPEVENT_ROTATEEND": 地图旋转结束触发
10."LAYEREVENT_LOADEND": 图层加载完成触发
11."MAPEVENT_EXTENTCHANGED": 地图范围变化时触发

Summary

Methods:
addListener

添加事件监听,用来注册非鼠标键盘类事件.
支持的事件类型:
1."MAPEVENT_MOVESTART": 注册后 开始拖动地图触发
2."MAPEVENT_MOVING":" 注册后 拖动地图过程中触发
3."MAPEVENT_MOVEEND": 注册后 拖动地图结束触发
4."MAPEVENT_ZOOMSTART": 地图开始缩放触发
5."MAPEVENT_ZOOMING": 地图缩放过程中触发
6."MAPEVENT_ZOOMEND": 地图缩放结束触发
7."MAPEVENT_ROTATESTART": 地图旋转开始触发
8."MAPEVENT_ROTATING": 地图旋转过程中触发
9."MAPEVENT_ROTATEEND": 地图旋转结束触发
10."LAYEREVENT_LOADEND": 图层加载完成触发
11."MAPEVENT_EXTENTCHANGED": 地图范围变化事件

destroy

销毁方法

dispatch

派发事件 派发的事件通过addListener来监听。

fire

派发事件 派发的事件通过register 来监听

register

添加事件监听,用来注册鼠标键盘类事件监听。
支持的事件类型:
1."MAPMOUSEEVENT_CLICK": 地图上鼠标单击触发
2."MAPMOUSEEVENT_DOUBLECLICK": 地图上鼠标双击触发
3."MAPMOUSEEVENT_MOUSEDOWN": 地图上鼠标按下触发
4."MAPMOUSEEVENT_MOUSEMOVE":" 地图上鼠标移动触发
5."MAPMOUSEEVENT_MOUSEOUT": 鼠标移出地图触发
6."MAPMOUSEEVENT_MOUSEOVER": 鼠标在地图上滑动触发
7."MAPMOUSEEVENT_MOUSEUP": 地图上鼠标抬起触发
8."MAPMOUSEEVENT_MOUSEWHEEL": 地图上鼠标滚轮滚动触发
9."MAPTOUCHEVENT_TOUCHSTART": 手指在地图上触摸开始时触发
10."MAPTOUCHEVENT_TOUCHMOVE": 手指在地图上移动时触发
11."MAPTOUCHEVENT_TOUCHEND": 手指在地图上移动结束时触发
12."MAPKEYEVENT_KEYDOWN": 键盘按下时触发
13."MAPKEYEVENT_KEYUP": 键盘抬起时触发

removeListener

移除事件监听,用来移除通过addListener添加的事件监听,注意只有在和注册事件时调用addListener方法传入的eventType和callback参数都一致时才能取消注册事件

unRegister

移除事件监听 用来移除通过register添加的事件监听,注意只有在和注册事件时调用register方法传入的eventType和callback参数都一致时才能取消注册事件

Constructor

new EventManager()

事件管理类的构造函数。

Example
let evtMgr = new hmap.event.EventManager();
//注:在Map对象中有一个全局的event(通过map.event可获得)可供使用, 即{hmap.event.EventManager}对象,在地图应用产品中不用再创建EventManager对象。

Methods

addListener(eventType, callback, cancelBefore, once, target)

添加事件监听,用来注册非鼠标键盘类事件.
支持的事件类型:
1."MAPEVENT_MOVESTART": 注册后 开始拖动地图触发
2."MAPEVENT_MOVING":" 注册后 拖动地图过程中触发
3."MAPEVENT_MOVEEND": 注册后 拖动地图结束触发
4."MAPEVENT_ZOOMSTART": 地图开始缩放触发
5."MAPEVENT_ZOOMING": 地图缩放过程中触发
6."MAPEVENT_ZOOMEND": 地图缩放结束触发
7."MAPEVENT_ROTATESTART": 地图旋转开始触发
8."MAPEVENT_ROTATING": 地图旋转过程中触发
9."MAPEVENT_ROTATEEND": 地图旋转结束触发
10."LAYEREVENT_LOADEND": 图层加载完成触发
11."MAPEVENT_EXTENTCHANGED": 地图范围变化事件

Parameters:
Name Type Default Description
eventType EventType

事件类型,参看EventType下定义的以上事件类型。

callback function

事件监听后的回调函数

cancelBefore Boolean false

表示注册时是否删除已经注册的同类型事件的监听。默认false:不删除之前注册的监听事件,true:删除之前注册的同类型监听事件。

once Boolean false

是否只触发一次. false,可以触发多次.true,事件只触发一次,表示只要同类型事件触发过一次就会销毁该事件对象的传播

target Object null

事件监听并响应后,事件流的当前对象(event._curTarget)会设置为target。如果不指定,则target默认为监听对象的上下文。

Example
map.event.addListener(EventType.MAPEVENT_MOUSEMOVE,function(evt){console.log(evt.getCoordinate());});

destroy()

销毁方法

dispatch(event)

派发事件 派发的事件通过addListener来监听。

Parameters:
Name Type Description
event module:event.Event

要派发的事件 可查看eventType接口支持的event类型

Example
eventMgr.addListener(EventType.LAYEREVENT_LOADEND,this.redraw.bind(this));
//以上注册了“LAYEREVENT_LOADEND”的监听,dispatch派发后,既可以监听到并响应回调函数。
eventMgr.dispatch(new hmap.event.Event(EventType.LAYEREVENT_LOADEND));

fire(event)

派发事件 派发的事件通过register 来监听

Parameters:
Name Type Description
event DomEvent

dom事件类型

register(eventType, callback)

添加事件监听,用来注册鼠标键盘类事件监听。
支持的事件类型:
1."MAPMOUSEEVENT_CLICK": 地图上鼠标单击触发
2."MAPMOUSEEVENT_DOUBLECLICK": 地图上鼠标双击触发
3."MAPMOUSEEVENT_MOUSEDOWN": 地图上鼠标按下触发
4."MAPMOUSEEVENT_MOUSEMOVE":" 地图上鼠标移动触发
5."MAPMOUSEEVENT_MOUSEOUT": 鼠标移出地图触发
6."MAPMOUSEEVENT_MOUSEOVER": 鼠标在地图上滑动触发
7."MAPMOUSEEVENT_MOUSEUP": 地图上鼠标抬起触发
8."MAPMOUSEEVENT_MOUSEWHEEL": 地图上鼠标滚轮滚动触发
9."MAPTOUCHEVENT_TOUCHSTART": 手指在地图上触摸开始时触发
10."MAPTOUCHEVENT_TOUCHMOVE": 手指在地图上移动时触发
11."MAPTOUCHEVENT_TOUCHEND": 手指在地图上移动结束时触发
12."MAPKEYEVENT_KEYDOWN": 键盘按下时触发
13."MAPKEYEVENT_KEYUP": 键盘抬起时触发

Parameters:
Name Type Description
eventType EventType

鼠标事件类型,参照EventType下的定义。

callback function

事件回调函数

Example
map.event.register(EventType.MAPMOUSEEVENT_DOUBLECLICK,mapDbClickHandler);

removeListener(eventType, callback)

移除事件监听,用来移除通过addListener添加的事件监听,注意只有在和注册事件时调用addListener方法传入的eventType和callback参数都一致时才能取消注册事件

Parameters:
Name Type Description
eventType EventType

事件类型

callback function

注册事件监听的回调函数

Example
evtMgr.removeListener(EVENTTYPE.MAPEVENT_ZOOMEND,function(evt){console.log(evt);});

unRegister(eventType, callback)

移除事件监听 用来移除通过register添加的事件监听,注意只有在和注册事件时调用register方法传入的eventType和callback参数都一致时才能取消注册事件

Parameters:
Name Type Description
eventType EventType

事件类型,具体类型参照EventType中的枚举事件类型.

callback function

通过register注册的事件监听的回调函数

Example
eventMgr.unRegister(EventType.MAPMOUSEEVENT_DOUBLECLICK,mapDbClickHandler);