百度地图API详解之⾃定义地图控件本⽂向⼤家介绍关于⾃定义地图控件的知识,你将了解到如何通过百度地图API⾃定义⾃⼰的地图控件。
控件基础控件是地图API提供的供⽤户操作地图的界⾯元素,API内置了⼏个控件:缩放/平移控件(NavigationControl)、缩略图控件(OverviewMapControl)、⽐例尺控件(ScaleControl)、版权控件(CopyrightControl)和地图类型控件(MapTypeControl)。
通过下⾯的图⽰可以找到对应关系。
控件位置任何控件都可以停靠在地图的四个⾓落,并通过偏移值(offset)控制具体位置,停靠位置(API中叫做anchor)通过以下4个常量控制:BMAP_ANCHOR_TOP_LEFT 表⽰控件定位于地图的左上⾓。
BMAP_ANCHOR_TOP_RIGHT 表⽰控件定位于地图的右上⾓。
BMAP_ANCHOR_BOTTOM_LEFT 表⽰控件定位于地图的左下⾓。
BMAP_ANCHOR_BOTTOM_RIGHT 表⽰控件定位于地图的右下⾓。
⾃定义控件控件本质上是HTML⽚段加上⼀些DOM事件的响应,进⽽再操作地图。
所以编写⾃定义控件就是需要开发者⾃⾏编写HTML代码并添加⾃⼰的事件处理⽅法,⽅法中再调⽤地图API提供的接⼝来改变地图状态。
在百度地图API中⾃定义控件的编写需要以下⼏个步骤:1. 定义⼀个⾃定义控件的构造函数,提供defaultAnchor和defaultOffset属性。
2. 继承API的控件基类。
3. 实现initialize⽅法。
下⾯我们就来完成⼀个最简单的⾃定义控件,以便让您了解构建⾃定义控件的完整过程是什么样的。
定义构造函数我们定义⼀个function做为⾃定义控件的构造函数,并在其中提供了默认停靠位置和偏移量。
注意它们取值的类型:⼀个是ControlAnchors常量,⼀个是Size类。
// 定义⼀个控件类,即functionfunction ZoomControl(){// 设置默认停靠位置和偏移量this.defaultAnchor = BMAP_ANCHOR_TOP_LEFT;this.defaultOffset = new BMap.Size(10, 10);}继承通过函数对象的prototype实现继承(希望您已经了解了JavaScript中的继承机制)。