您好,您这个这个报错可能是事件注册有问题,您那边可以贴下代码吗?
您可以参考https://iclient.supermap.io/web/libs/iclient8c/apidoc/files/SuperMap/Control/Measure-js.html这个例子
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 具体操作方法用户可根据需要自行定义
}