javascript - 面积测量未显示正确的测量结果

标签 javascript gis openlayers-3

我正在尝试绘制多边形的面积。但我得到的面积大约比应有的面积大 50%。

draw.on('drawend', funciton(e){
  var geom = e.feature.getGeometry();
  if(drawType === 'Polygon'){
    var rawArea = geom.getArea();
    var cleanArea = rawArea / 10000; // Convert to hectares
  }
});

一些例子:

  • 本应为 1.18 公顷的土地实际为 1.87 公顷
  • 本应为 1.29 公顷的土地实际为 2.09 公顷
  • 本应为 1.45 公顷的土地实际为 2.31 公顷

最佳答案

看看测地线测量选项的测量示例是如何完成的:http://openlayers.org/en/v3.6.0/examples/measure.html

var sourceProj = map.getView().getProjection();
var geom = /** @type {ol.geom.Polygon} */(polygon.clone().transform(
    sourceProj, 'EPSG:4326'));
var coordinates = geom.getLinearRing(0).getCoordinates();
area = Math.abs(wgs84Sphere.geodesicArea(coordinates));

关于javascript - 面积测量未显示正确的测量结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30874266/

相关文章:

google-maps - 将高度转换为 z 水平(反之亦然)

javascript - 在d3.js中,使用svg.node()的目的是什么?

r - 由于地理单位不同,我在向 ggmap 添加 shapefile 时遇到问题

javascript - 尝试设置 openlayers3 的样式

geolocation - 跨多个多边形搜索点的最佳方法

r - ggplot2 中的离散图例中断

openlayers-3 - Openlayers 3 自定义多边形符号器

javascript - Google 脚本用于每周在新工作表中复制和存档表单回复

javascript - asp.net Bootstrap 警报自动关闭

javascript - 正则表达式获取 () 之间的字符串