OpenLayers 3 之 扩展自定义控件--以切换图层控件为例

本文介绍了如何在OpenLayers 3中扩展自定义控件,以图层切换控件为例,详细讲解了继承ol.control.Control基类创建控件的过程,包括定义基类、对外方法以及具体实现。通过需求分析和代码实现,展示了如何在地图上添加一个可切换图层的DOM元素,并实现图层的显示与隐藏功能。
摘要由CSDN通过智能技术生成

      openlayers 中的控件,是一个固定在页面某个位置的可见的DOM元素,它们可能包含可操作的按钮,也可能只是单纯的展示信息,它们的位置及其样式是由与其关联的CSS样式决定的。默认情况下,它们都位于一个CSS 类(class)为ol.overlaycontainer-stopevent的元素内,当然也可以使用其他的自定义的DOM容器元素。

      在openlayers 的结构中,控件有很多,比如左上角的缩放控件、右下角的属性控件,这些控件都是继承一个基类 ol.control.Control,基类主要为它的子类提供统一的“阻止事件传播机制”,并且 ol.control.Control继承了 ol.Object,并且控件都放于一个统一的容器 ol.Collection,所以如果继承ol.control.Control基类,自定义的控件不仅可以得益于其“阻止事件传播机制”,也可以使用 ol.Objectol.Collection的方法和事件。

ol.control.Control 简介

      ol.control.Control是openlayers的控件基类,我们的自定义控件可以继承该基类(在上边我们也讲了继承该基类的好处),在类中使用 javascript 动态创建DOM元素,指定DOM元素对应的CSS样式类(class),并对DOM元素绑定相应的事件,来完成自定义控件。openlayers3 使用了google 的 closure 库来进行开发,要使用 closure 的语法来进行继承,比如我们定义我们的切换图层控件类为 ol. control.LayerSwitcher,那么使用closure实现继承的语句如下:

ol.inherits(ol.control.LayerSwitcher, ol.control.Control)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值