SuperMap.Control

控件类,提供了多种控件,比如比例尺控件,鹰眼控件,缩放条控件等等。 用于处理 Control 事件的事件处理器 Handler,内部封装了一系列的浏览器事件, 在控件(control)实现过程中可调用Handler,通过 active和 deactive两个方法,实现动态的激活和注销。

可见控件不需要使用 activate 方法激活便可以使用。

对于非可见控件来说, 带有 autoActivate 属性并且默认值为 true 的控件会在使用时自动激活;

对于不具备 autoActivate 属性的控件,由于父类Control类中的 autoActivate 属性默认值为false, 所以使用这些控件需要调用 activate 方法进行激活控件,也可通过设置父类的 autoActivate 属性为 true 来激活。

控件影响地图显示和地图操作,在没有指定控件的情况下,地图默认添加 Navigation、PanZoomBar 控件。 也可通过参数options传入的div添加控件到一个外部的div。

例如

下面的示例演示如何在地图上添加多种控件的方法:

var map = new SuperMap.Map('map', { controls: [] });

map.addControl(new SuperMap.Control.LayerSwitcher({'ascending':false}));
map.addControl(new SuperMap.Control.MousePosition());
map.addControl(new SuperMap.Control.OverviewMap());
map.addControl(new SuperMap.Control.KeyboardDefaults());

下面的代码片段是一个关于用户如何截获按住Shift键的同时移动鼠标拖出的边界框的范围事件的简单的例子,如下:

var control = new SuperMap.Control();
SuperMap.Util.extend(control, {
    draw: function () {
        this.box = new SuperMap.Handler.Box( control,
            {"done": this.notice},
            {keyMask: SuperMap.Handler.MOD_SHIFT});
        this.box.activate();
    },

    notice: function (bounds) {
    }
});
map.addControl(control);
Summary
SuperMap.Control 控件类,提供了多种控件,比如比例尺控件,鹰眼控件,缩放条控件等等。 用于处理 Control 事件的事件处理器 Handler,内部封装了一系列的浏览器事件, 在控件(control)实现过程中可调用Handler,通过 active和 deactive两个方法,实现动态的激活和注销。
Properties
active {Boolean} 用户判定控件是否激活状态(只读),用activate、deactivate方法可以改变控件的状态。
autoActivate {Boolean} 当控件添加到地图上时激活此控件。默认为false。
div {DOMElement} 存放此控件的DOM元素,如果不指定则控件默认放置在地图内部。
eventListeners {Object} 如果设置为构造函数的一个选项,eventListeners将被SuperMap.Events.on 注册, 对象结构必须是一个监听器对象,具体例子详细参见events.on方法。
events {SuperMap.Events} 注册控件特定事件的监听器实例。
id {String} 控件的id
title {string} 此属性用来在控件上显示一个提示框。
type {Number} 控件的类型。
Constants
EVENT_TYPES {Array(String)} 支持的事件类型。注册特定事件的监听器,示例如下:
Constructor
SuperMap.Control 创建控件,options作为参数传递直接扩展控件.如下面的例子所示:
Functions
activate 激活控件及其相关的处理事件(handler),控件失效调用deactivate方法。
deactivate 使控件及其相关的处理事件(handler)失效。
Constants
SuperMap.Control.SKIN {String} 控件的样式,此值需在创建控件前设置。 提供两套样式:一套为”WHITE”,即白色样式,另一套为”BLUE”,即蓝色样式。默认为白色样式:SuperMap.Control.SKIN=”WHITE”。 其中,白色样式只支持Zoom、LayerSwitcher、OverviewMap三个控件。
SuperMap.Control.TYPE_BUTTON
SuperMap.Control.TYPE_TOGGLE
SuperMap.Control.TYPE_TOOL

Properties

id

{String} 控件的id

div

{DOMElement} 存放此控件的DOM元素,如果不指定则控件默认放置在地图内部。

type

{Number} 控件的类型。

title

{string} 此属性用来在控件上显示一个提示框。

autoActivate

{Boolean} 当控件添加到地图上时激活此控件。默认为false。

active

{Boolean} 用户判定控件是否激活状态(只读),用activate、deactivate方法可以改变控件的状态。

eventListeners

{Object} 如果设置为构造函数的一个选项,eventListeners将被SuperMap.Events.on 注册, 对象结构必须是一个监听器对象,具体例子详细参见events.on方法。

events

{SuperMap.Events} 注册控件特定事件的监听器实例。

Constants

EVENT_TYPES

{Array(String)} 支持的事件类型。注册特定事件的监听器,示例如下:

control.events.register(type, obj, listener);

event对象具备以下属性: object - {Object} 发出浏览器事件的对象。 element - {DOMElement} 浏览器接收事件的DOM元素。

支持的地图事件类型: activate - 控件激活时触发此事件。 deactivate - 控件失效时触发此事件。

Constructor

SuperMap.Control

创建控件,options作为参数传递直接扩展控件.如下面的例子所示:

var control = new SuperMap.Control({div: myDiv});

重写默认属性值为null的div。

Parameters

options {Object}

Functions

activate

activate: function ()

激活控件及其相关的处理事件(handler),控件失效调用deactivate方法。

Returns

{Boolean} 如果控件成功激活则为true,如果控件已经是激活状态则为false。

deactivate

deactivate: function ()

使控件及其相关的处理事件(handler)失效。

Returns

{Boolean} 如果控件得到有效的停用则为true,如果控件已经是失效停用状态则为false。

Constants

SuperMap.Control.SKIN

{String} 控件的样式,此值需在创建控件前设置。 提供两套样式:一套为”WHITE”,即白色样式,另一套为”BLUE”,即蓝色样式。默认为白色样式:SuperMap.Control.SKIN=”WHITE”。 其中,白色样式只支持Zoom、LayerSwitcher、OverviewMap三个控件。

SuperMap.Control.TYPE_BUTTON

SuperMap.Control.TYPE_TOGGLE

SuperMap.Control.TYPE_TOOL

activate: function ()
激活控件及其相关的处理事件(handler),控件失效调用deactivate方法。
deactivate: function ()
使控件及其相关的处理事件(handler)失效。
Close