面积和距离量算

距离量算

距离量算是指测地线距离,指依地球表面进行量算,量算结果更符合实际应用,同时支持跨越东西半球进行量算。距离量算功能的实现步骤:

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;
});

查看完整示例代码

results matching ""

    No results matching ""