面积和距离量算
距离量算
距离量算是指测地线距离,指依地球表面进行量算,量算结果更符合实际应用,同时支持跨越东西半球进行量算。距离量算功能的实现步骤:
1.构建服务参数类
量算服务参数类提供服务请求所需的信息,该类提供量算的查询参数封装,提供的参数有 geometry,用来定义量算的几何对象,代码如下:
// 设置量算服务参数
var distanceMeasureParam = new SuperMap.MeasureParameters(feature.getGeometry());
// 设置要量算的矢量对象({Line}或{Polygon}),geometry可以通过直接初始化的方法获取
distanceMeasureParam.geometry= geometry;
2.构建服务类并发送请求
量算服务类负责向服务端发送请求,并将查询结果返回。使用服务类需要指定服务 URL 等服务参数,向服务端发送请求信息,然后通过监听服务请求完成事件,从事件服务数据类中获取最终的结果 Result 对象,按照用户需求进行处理,代码如下:
// 提交服务请求,设置服务请求关键参数,获取返回结果并按照用户需求进行处理
var url="http://support.supermap.com.cn:8090/iserver/services/map-world/rest/maps/World"; //服务访问的地址
new ol.supermap.MeasureService(url, {measureMode: ""}).measureDistance(distanceMeasureParam, function (serviceResult) {
function doSomething(serviceResult);
// 获取服务器返回的结果
var result=serviceResult.result;
});
面积测量
1.实例化测量服务参数,代码如下:
var areaMeasureParam = new SuperMap.MeasureParameters(feature.getGeometry());
2.调用测量函数
调用测量函数 ol.supermap.MeasureService.measureArea,展示测量结果,代码如下:
// 设置面积量算服务参数
var areaMeasureParam = new SuperMap.MeasureParameters(feature.getGeometry());
new ol.supermap.MeasureService(url).measureArea(areaMeasureParam, function (serviceResult) {
// 获取服务器返回的结果
var result = serviceResult.result;
});