量算类,该类实现在地图上绘制要素, 获取距离或面积的量算操作。 量算过程通过调用事件处理器 Handler 实现在 vector 图层上的距离或面积的量算。
通过 active 和 deactive 两个方法,实现动态的激活和注销。 下面以距离量算为例,具体说明 active 和 deactive 进行控件的激活和注销的方法。
激活控件,可用如下方法:
measureControls.activate();
取消控件激活状态时,可用如下方法:
measureControls.deactivate();
SuperMap. |
量算类,该类实现在地图上绘制要素, 获取距离或面积的量算操作。 量算过程通过调用事件处理器 Handler 实现在 vector 图层上的距离或面积的量算。 |
Constants | |
EVENT_TYPES | {Array(String)} 支持的事件类型。通过下面的语法注册事件。 |
Properties | |
displaySystem | {String} 测量单位,支持’english’, ‘metric’, 和 ‘geographic’。默认为metric。 |
geodesic | {Boolean} 计算是投影到球面还是平面的几何图形近似测地长度。通过调用 SuperMap.Projection 将不同的投影坐标系转换成 WGS84 。默认为false,即投影到平面,设为true,则是投影到球面。 |
handlerOptions | {Object} 设置控件的事件处理器的非默认属性的值。 |
immediate | {Boolean} 当该属性为true时,量算过程中时时显示结果,同时会触发 “measurepartial” 事件。默认为false。 |
persist | {Boolean} 是否在量算结束后保留绘制的要素。当新的量算开始,控件取消激活获取取消量算时会清除绘制的要素。默认为:false,不保留。 |
Constructor | |
SuperMap. |
|
Functions | |
cancel | 取消量算,绘制的要素也会被擦除。 |
deactivate | 取消激活该控件。 |
setImmediate | 调用该方法可以实现动态设置量算过程是否时时显示量算结果。 |
{Array(String)} 支持的事件类型。通过下面的语法注册事件。
control.events.register(type, obj, listener);
支持的事件类型:
measure | 当量算完成时触发。需要传入当前绘制要素的geometry信息作为参数, 返回measure、units、order、geometry信息。其中: |
measure:表示测量结果;
units:测量单位;
order:order=1时表示距离测量,order=2时表示面积测量
geometry:绘制后的几何图形信息。
measurepartial | 当点被添加到量算过程中时触发。必须传入绘制要素的geometry信息参数, 也可以传入当前绘制要素的geometry信息和添加的最后一个点的geometry信息。 |
handler | {SuperMap.Handler} 量算时使用的绘图方法。 |
options | {Object} 设置该类支持的属性,当用户不使用默认值时,可通过此参数设置。 |
var map = new SuperMap.Map("map"); //实例化 measureControls 控件,用于测量距离和面积 measureControls = { //距离量算 line:new SuperMap.Control.Measure( SuperMap.Handler.Path, {persist:true} ), //面积量算 polygon:new SuperMap.Control.Measure( SuperMap.Handler.Polygon,{persist:true} ) }; var control; //监听 measure 和 measurepartial 两个事件,量算完成时触发时 //量算完成时触发 measure 事件,当点被添加到量算过程中时触发 measurepartial for(var key in measureControls){ control = measureControls[key]; control.events.on({ "measure": handleMeasure, "measurepartial": handleMeasurements }); //添加控件到 map 上 map.addControl(control); } //激活控件 control.activate(); //定义 handleMeasurements 函数,触发 measure 事件会调用此函数 //事件参数 event 包含了测量要素 geometry 信息 function handleMeasure(event) { //获取传入参数 event 的 geometry 信息 var geometry = event.geometry; //TODO 具体操作方法用户可根据需要自行定义 } //定义 handleMeasurements 函数,触发 measurepartial 事件会调用此函数 //事件参数 event 包含了测量要素 geometry 信息 function handleMeasurements(event) { //获取传入参数 event 的 geometry 信息 var geometry = event.geometry; //获取传入参数 event 的 type 信息(click指示的是点击事件,move指示的是移动事件) var type=event.type; //TODO 具体操作方法用户可根据需要自行定义 }
在用户测量结束后,可用 deactivate() 方法注销控件。
取消激活该控件。
deactivate: function()
取消量算,绘制的要素也会被擦除。
cancel: function()
调用该方法可以实现动态设置量算过程是否时时显示量算结果。
setImmediate: function( immediate )