一. 自定义覆盖物:继承Overlay类
这个例子是在地图中间添加了一个覆盖物
//1、定义构造函数并继承Overlay
定义自定义覆盖物的构造函数div.style.background = this._color;
div.appendChild(document.createTextNode("覆盖物测试"));
// 将div添加到覆盖物容器中
});
二. 自定义控件:继承Control类
这里是在地图右上角添加了一个工具栏(三个按钮)
function StaticsControl() {
// 设置默认停靠位置和偏移量
this.defaultAnchor = BMAP_ANCHOR_TOP_RIGHT;
this.defaultOffset = new BMap.Size(10, 10);
}
// 通过JavaScript的prototype属性继承于BMap.Control
StaticsControl.prototype = new BMap.Control();
StaticsControl.prototype.initialize = function (map) {
// 创建一个DOM元素
var div = document.createElement("div");
// 添加文字说明
var e1 = document.createElement("input");
e1.type = "button";
e1.value = "专题统计";
e1.onclick = function () {
Statics();
}
var object = div.appendChild(e1);
var e2 = document.createElement("input");
e2.type = "button";
e2.value = "结束统计";
e2.onclick = function () {
EndStatics();
}
var object = div.appendChild(e2);
var e3 = document.createElement("input");
e3.type = "button";
e3.value = "统计设置";
e3.onclick = function () {
SetStatics();
}
var object = div.appendChild(e3);
// 添加DOM元素到地图中
map.getContainer().appendChild(div);
// 将DOM元素返回
return div;
}
// 创建控件实例
var staticsCtrl = new StaticsControl();
// 添加到地图当中
map.addControl(staticsCtrl);
function SetStatics() {
alert("SetStatics");
}
function EndStatics() {
alert("EndStatics");
}
function Statics() {
alert("Statics");
}