浏览问题
等待回复
精选文章
申请试用
资源中心
漏洞修复
注册
|
登录
SuperMap技术问答社区
我要
提问
智能客服
首页
/
浏览问题
/
其他
/
问题详情
面积和距离量算
windDawn
70EXP
2017年03月22日
myMeasuerService.events.on({ "processCompleted": measureCompleted });,总是无法触发此事件
javascript
空间分析
请
登录
或者
注册
后回答这个问题。
1个回答
你好,请问你是没有进这个方法里面,还是返回的没有结果呢?
看一下网络请求是否有什么报错呢?
请问你是在地图上绘制的面还是你用点构成线线成面的?如果是用点去构成的面的话,你的点坐标要和你的地图坐标系一样,
郑雅琳
1,603EXP
2017年03月22日
//线量算距离
lineDistance = new SuperMap.Control.DrawFeature(lineDistanceLayer, SuperMap.Handler.Path, { multi: true });
lineDistance.events.on({ "featureadded": drawLineDistanceCompleted });
//面量算距离
areaDistance = new SuperMap.Control.DrawFeature(areaDistanceLayer, SuperMap.Handler.Polygon, { multi: true });
areaDistance.events.on({ "featureadded": drawLineDistanceCompleted });
//距离量算完成事件
function drawLineDistanceCompleted(eventArgsLineDistance) {
lineDistance.deactivate();
var geometry = eventArgsLineDistance.feature.geometry,
measureParam = new SuperMap.REST.MeasureParameters(geometry), /* MeasureParameters:量算参数类。 客户端要量算的地物间的距离或某个区域的面积*/
myMeasuerService = new SuperMap.REST.MeasureService(csm.serverUrl); //量算服务类,该类负责将量算参数传递到服务端,并获取服务端返回的量算结果
myMeasuerService.events.on({ "processCompleted": measureCompleted });
//对MeasureService类型进行判断和赋值,当判断出是LineString时设置MeasureMode.DISTANCE,否则是MeasureMode.AREA
if (geometry.CLASS_NAME.indexOf("LineString") > -1) {
myMeasuerService.measureMode = SuperMap.REST.MeasureMode.DISTANCE;
} else {
myMeasuerService.measureMode = SuperMap.REST.MeasureMode.AREA;
}
myMeasuerService.processAsync(measureParam); //processAsync负责将客户端的量算参数传递到服务端。
}
function measureCompleted(measureEventArgs) {
var distance = measureEventArgs.result.distance;
var area = measureEventArgs.result.area;
var unit = measureEventArgs.result.unit;
if (distance != -1) {
distance = Math.round(distance * 100) / 100;
alert("量算结果" + distance + "米");
} else if (area != -1) {
area = Math.round(area * 100) / 100;
alert("量算结果" + area + "平方米");
}
}
请问是直接无法进入measureCompleted这个方法吗?如果是直接没有进入的话,你可以在监听事件的地方多写一个processFailed事件,然后在这个事件的回调事件里面输出查看一下报错信息,例如function processFailed(e) {alert(e.error.errorMsg);}
F12看一下控制台有没有什么报错,或者网络请求有没有什么报错,
我这边测试了你的代码是没有问题的。
没有报错,processFailed直接弹出资源不存在
请你检查一下你的MeasureService里面写的url是否正确,如果url填写错误是会报这样的错误的
这个功能需不需要在iServer上开启什么服务
就地图服务就可以了
请
登录
或者
注册
后再添加评论。
智能推荐
相关问题
相关文章
推荐教程
面积量算和距离量算报错:资源不存在
量算官方示例中贴地量算面积和距离的计算函数是只在cgcs2000和xian80坐标系下才使用的吗
如何将距离量算和面积量算时画的图形显示在地图上
测量面积和距离时候出现错误
如何用iserver进行3857的测量距离和面积
distance求两个面的距离
面状区域生成距离栅格图范围有限,不能得到预想结果
关于在线地图中的测距和测面积的代码
热门文章
查看更多>
关注我们
超图软件官网
SuperMap Online
地图慧
帮助中心
备案信息
技术资源中心
...