问题
等待回复
文章精选
许可中心
资源中心
注册
SuperMap技术问答社区
我要提问
智能推荐
相关问题
相关文章
推荐教程
面积量算和距离量算报错:资源不存在
如何用iserver进行3857的测量距离和面积
关于在线地图中的测距和测面积的代码
distance求两个面的距离
面状区域生成距离栅格图范围有限,不能得到预想结果
测面积和距离,弹出undefined?
测量距离、面积单位转换
计算地图两点之间距离
热门标签
三维
iserver
idesktop
javascript
webgl
iclient
三维模型
iobjects
三维场景
倾斜摄影
imobile
android
发布服务
net
iobject
二次开发
idesktop9d
leaflet
插件
许可
plugin
ios
二维
supermap
属性查询
js
三维gis
java
组件开发
二维地图
所有分类
云GIS
2,520个
桌面GIS
2,394个
组件GIS
1,732个
移动GIS
891个
三维GIS
3,152个
其他
791个
面积和距离量算
我要提问
0
投票
myMeasuerService.events.on({ "processCompleted": measureCompleted });,总是无法触发此事件
javascript
空间分析
3月 22, 2017
分类:
882次浏览
|
用户:
windDawn
初出茅庐
(
58
分)
请
登录
或者
注册
后回答这个问题。
1个回答
0
投票
你好,请问你是没有进这个方法里面,还是返回的没有结果呢?
看一下网络请求是否有什么报错呢?
请问你是在地图上绘制的面还是你用点构成线线成面的?如果是用点去构成的面的话,你的点坐标要和你的地图坐标系一样,
3月 22, 2017
用户:
郑雅琳
名扬四海
(
1,600
分)
修改于
3月 22, 2017
用户:
郑雅琳
//线量算距离
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上开启什么服务
就地图服务就可以了
请
登录
或者
注册
后再添加评论。
...