OpenLayer3的getArea()及getLenth()方法解析
来源:互联网 发布:已选中提示js代码 编辑:程序博客网 时间:2024/06/05 04:20
问题来源:为什么方法返回的数据不带单位?
通过在官网的measures例子发现,这种方法得到的值是没有意义的值,必须要通过设定好球体,才能得到相应的面积/长度。
改良版代码
适用于坐标系为4326的格式转换,若不是4326坐标系,就要自行参照官网的例子转换。(建议可以浏览ol.Sphere,只有两个函数)
/** * Format length output. * @param {ol.geom.LineString} line The line. * @return {string} The formatted length. */ function formatLength(line) { var wgs84Sphere = new ol.Sphere(6378137); var coordinates = line.getCoordinates(); var length = 0; for (var i = 0, ii = coordinates.length - 1; i < ii; ++i) { length += wgs84Sphere.haversineDistance(coordinates[i], coordinates[i+1]); } var output; if (length > 100) { output = (Math.round(length / 1000 * 100) / 100) + ' ' + 'km'; } else { output = (Math.round(length * 100) / 100) + ' ' + 'm'; } return output; } /** * Format area output. * @param {ol.geom.Polygon} polygon The polygon. * @return {string} Formatted area. */ function formatArea(polygon) { var wgs84Sphere = new ol.Sphere(6378137); var coordinates = polygon.getLinearRing(0).getCoordinates(); var area = Math.abs(wgs84Sphere.geodesicArea(coordinates)); var output; if (area > 10000) { output = (Math.round(area / 1000000 * 100) / 100) + ' ' + 'km<sup>2</sup>'; } else { output = (Math.round(area * 100) / 100) + ' ' + 'm<sup>2</sup>'; } return output; },
0 0
- OpenLayer3的getArea()及getLenth()方法解析
- 类area的getArea方法是一个重载方法
- openlayer3跨域问题解决方法
- openLayer3地图的使用心得
- OpenLayer3的图层控件初步实现
- OpenLayer3读取Geoserver切割的离线瓦片
- openlayer3加载geoserver发布的WFS服务
- openlayer3热力图的实现 Heatmap
- 已知一个抽象类Shapge,该类中有一个方法GetArea。 要求定义一个Rectangle类,继承Shape类,实现GetArea方法计算矩形面积。
- java解析properties的方法及用法
- openlayer3聚合
- 设计一个接口Shape,包括2个抽象方法getPerimeter()和getArea()
- 定义一个圆类——Circle,在类的内部提供一个属性:半径(r),同时 提供 两个 方 法 : 计算 面积 ( getArea() ) 和 计算 周长(getPerimeter()) 。 通过两个方法
- 使用DOM4J解析XML及采用Schema校验的方法
- GCC 编译c程序的方法及过程解析
- java解析properties文件的几种方法及用法
- 生产成本计价及核算方法的优缺点解析
- GCC 编译c程序的方法及过程解析
- ios视频和音频采集
- 硬盘装XP系统教程
- 抽象工厂模式(AbstractFactory)
- scala基础2 —— 函数
- Git——新手入门与上传项目到远程仓库GitHub
- OpenLayer3的getArea()及getLenth()方法解析
- nginx+lua扩展
- React遍历数组
- etcd golang watch
- 欢迎使用CSDN-markdown编辑器
- android绑定Service失败原因
- c#枚举电脑上的串口号
- jQuery Mobile 入门
- eclipse自动补全的设置