距离和面积量算
SuperMap iClient for Leaflet 支持距离量算和面积量算。
距离量算
距离量算功能的实现步骤:
1.构建服务参数类
量算服务参数类提供服务请求所需的信息,该类提供量算的查询参数封装,提供的参数有 geometry和 unit,用来定义量算的几何对象和单位,代码如下:
//设置量算服务参数
var measureParam = new SuperMap.MeasureParameters();
//设置要量算的矢量对象({Line}或{Polygon}),geometry可以通过直接初始化的方法获取
measureParam.geometry= geometry;
measureParam.unit = SuperMap.Unit.METER;
2.构建服务类并发送请求
量算服务类负责向服务端发送请求,并将查询结果返回。使用服务类需要指定服务 URL等服务参数,向服务端发送请求信息,然后通过监听服务请求完成事件,从事件服务数据类中获取最终的结果 Result对象,按照用户需求进行处理,代码如下:
//初始化服务类,设置服务请求关键参数
var measureService = L.supermap.measureService(URL);
//提交服务请求,传递服务查询参数,获取返回结果并按照用户需求进行处理
measureService.measureDistance(measureParam,function (serviceResult){
//获取服务器返回的结果
var result = serviceResult.result;
});
面积量算
面积量算功能的实现步骤包括:
1.实例化测量服务构造函数,代码如下:
//设置测量范围
var polygon = L.polygon([[24, 100], [40, 100], [40, 120], [24, 120], [24, 100]], {color: "red"});
//实例化传入多边形参数的测量构造函数
var areaMeasureParam = new SuperMap.MeasureParameters(polygon);
2.调用测量函数
调用测量函数,并获取返回结果,代码如下:
//提交服务请求,传递服务查询参数,获取返回结果并按照用户需求进行处理
L.supermap .measureService(url) .measureArea(areaMeasureParam, function (serviceResult) {
//获取服务器返回的结果
var result = serviceResult.result;
});