- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenLayers 类分析 (一)
分析人:观海(QQ:531622)
背景:在开发使用OpenLayers 库的过程中,只有对其类实现方法有深入了解,应用才
能得心应手。所以,经过源码研读,整理出如下笔记,希望对大家有帮助。
1、OpenLayers.Control 类说明
1.1、OpenLayers.Events 监听事件处理
OpenLayers.Events 用于管理显示div 上的事件处理机制。其监听事件处
理的类结构如下图所示:
Events
+eventHandler listener
+attachToElement() +obj
+triggerEvent() +func
+register () 1 *
+unregister ()
+handleBrowserEvent()
Event
+stop ()
+observe()
Events 内部维持一个事件监听函数listener 构成的队列,由register 和
unregister 来管理。当事件触发时,由triggerEvent 来完成遍历队列分派事件。
attachToElement 用于绑定事件接收函数到对应的 div 上。
Events 类直接用于 Control 类、 Map 类和Layer 类中的 div 事件管理。
1.2、OpenLayers.Control 监听事件应用解析
Control
-eventListeners
-div
-events
+activate()
Map
+deactivate()
-events 1 * +draw ()
+addControl()
Control.MousePosition
+redraw ()
+reset()
+activate()
在 OpenLayers.Control 中内含一个 OpenLayers.Events 类来管理监听事
件。当初始化设置 Control 中的div 值时,OpenLayers.Events 会自动绑定
handleBrowserEvent 函数来接收浏览器 div 上的各种事件。当事件发生时,通
过triggerEvent,将事件发到每个监听函数 listener 中。
OpenLayers.Control 类中的 activate 和 deactivate 是 Events 中的
register 和 unregister 的封装,使用户都可以通过 Control 类来操作,不必
关心底层运作。
OpenLayers.MousePosition 类,事件监听解析
MousePosition 类,在active 函数中,将事件监听函数注册进
OpenLayer.Map 中的 events 事件处理类中。直接监听来自 Map 的 div 中的事
件消息,并处理。
1.3、OpenLayers.Con
文档评论(0)