已知多个地理坐标,如何计算这多个点组成的多边形的面积?

tfp 2010-01-11 03:06:22
已知多个地理坐标,如何计算这多个点组成的多边形的面积?

目的是要测算出农场的面积公顷

http://local.wasp.uwa.edu.au/~pbourke/geometry/polyarea/

参考算法

可支付报酬,感谢关注
...全文
3551 45 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 43 楼 tfp 的回复:]
那这个程序怎么验收测试呢?
[/Quote]

看你的用户是什么群体了,如果是政府机构,自然可以找土地局要农场的面积(手工测量的),然后你放出一个beta版给用户,如果误差太大就分析原因,修改。主要是和用户之间的交流。

以上纯属个人看法。
xuelong_zl 2010-01-18
  • 打赏
  • 举报
回复
汗,学习一下
tfp 2010-01-15
  • 打赏
  • 举报
回复
那这个程序怎么验收测试呢?
tristan0602 2010-01-14
  • 打赏
  • 举报
回复
给的引文中的第一个公式应该就好用吧。每三个顶点构成一个三角形,每个三角形的面积和为:

两条边向量的叉乘。求和,即为公式1
  • 打赏
  • 举报
回复
[Quote=引用 41 楼 tfp 的回复:]
晕噢,如果差不多得话,那感觉有点悬


哪里可以搞到官方数据,测试用用,我有点纳闷,怎么算出每个行政区得面积得,还有国土面积???
[/Quote]

国家有专门的测绘局,国土面积不可能精确。

我觉得大尺度就要用卫星遥感影像,中等尺度就用航拍,小尺度就要人工用测距尺之类的手工测量。

指导原则就是误差在可接受的范围内。

一般地理数据都是保密的,如果商业化的话,一些gis公司也有。
tfp 2010-01-14
  • 打赏
  • 举报
回复
晕噢,如果差不多得话,那感觉有点悬


哪里可以搞到官方数据,测试用用,我有点纳闷,怎么算出每个行政区得面积得,还有国土面积???
  • 打赏
  • 举报
回复
我们农场那就是人工测量的,测量人员连几何都不太懂。

你这个需求到底是多大规模,误差能容许到多少?我觉得即使上万公顷,用前面的平面去近似也够了。

至于测试,我觉得没有必要,因为前面提出的方法都是严格符合几何的,误差就在于地球的球形和地面的不平整。

[Quote=引用 38 楼 tfp 的回复:]
还有个问题,怎么测试呢? 总不见得拿个皮尺去量这些点,然后在计算面积吧??
[/Quote]
tfp 2010-01-13
  • 打赏
  • 举报
回复

还有个问题,怎么测试呢? 总不见得拿个皮尺去量这些点,然后在计算面积吧??
xingzhe2001 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 tfp 的回复:]
还涉及把地理坐标转成平面坐标, 这个领域不太熟悉,所以来这拜托各位领域专家
[/Quote]
地理坐标是3维的?经纬度?经纬度的话肯定要转化为千米吧
tfp 2010-01-12
  • 打赏
  • 举报
回复
还涉及把地理坐标转成平面坐标, 这个领域不太熟悉,所以来这拜托各位领域专家
donkey301 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 tfp 的回复:]
引用 20 楼 donkey301 的回复:
引用 13 楼 tfp 的回复:
LS的靠谱,能否帮我下,你的这个用什么c,能跨平台么?


别管我的具体代码,你只要知道怎么算的,很容易就能写出一个类似的,14楼的联接你可以参考一下。


重复造笼子啊???

你帮我写了,才是资源最优化呀

  有酬,请速q我!
[/Quote]
16楼已经给你写完代码了,你直接可以用。
michael122 2010-01-12
  • 打赏
  • 举报
回复
3楼正解,而且复杂度也低
第一种方法实际上是积分
第二种更直观一些
两种方法都需要考虑面积的正负号
alphaxiang 2010-01-12
  • 打赏
  • 举报
回复
http://local.wasp.uwa.edu.au/~pbourke/geometry/polyarea/
原理:连接所有多边形定点与原点,根据三角形面积公式:S=a*b*Sin(C)/2

则三角形OPiPi+1的面积为:OPi*OPi+1 OPi,OPi+1为向量。积为向量外积Pi,Pi+1为顺时针时结果为正,否则结果为负
则逆时针绕多边形一周所有相邻向量积之和恰好为多边形面积。
xingzhe2001 2010-01-12
  • 打赏
  • 举报
回复
可不可以这样,找个参照物,比如一般电线杆的距离是100米,那么你根据这个可以计算一个纬度/经度是多长
xingzhe2001 2010-01-12
  • 打赏
  • 举报
回复
精确的不好弄了,要考虑地形的实际情况了,在高原肯定比在平原算得面积大
tfp 2010-01-12
  • 打赏
  • 举报
回复
so... 哪个可以用呢?

这代码要用在土地丈量上,最好给个标准专业的算法,别把农场面积少算了啊,

谢过啦
  • 打赏
  • 举报
回复
lz说不用三维

那计算时只能近似成球面转换长度,然后近似成平面计算面积了

事实上高高洼洼必然会影响面积

[Quote=引用 33 楼 mysword 的回复:]
哪有那么简单,地球不是完美的圆球

引用 32 楼 xingzhe2001 的回复:
那很好转阿,首先算出当地一个经度是多少千米,一个纬度是多少千米,然后坐标就出来了。
计算方法:
比如一个点的经纬度是(J,W),地球半径R
首先根据纬度算出纬圈的周长  C = 2*Pi*R*cos(W);
所以一个经度的千米就是 C/360
一个纬度的千米是2*Pi*R/360.



[/Quote]
gnefuil 2010-01-12
  • 打赏
  • 举报
回复
哪有那么简单,地球不是完美的圆球

[Quote=引用 32 楼 xingzhe2001 的回复:]
那很好转阿,首先算出当地一个经度是多少千米,一个纬度是多少千米,然后坐标就出来了。
计算方法:
比如一个点的经纬度是(J,W),地球半径R
首先根据纬度算出纬圈的周长  C = 2*Pi*R*cos(W);
所以一个经度的千米就是 C/360
一个纬度的千米是2*Pi*R/360.



[/Quote]
xingzhe2001 2010-01-12
  • 打赏
  • 举报
回复
那很好转阿,首先算出当地一个经度是多少千米,一个纬度是多少千米,然后坐标就出来了。
计算方法:
比如一个点的经纬度是(J,W),地球半径R
首先根据纬度算出纬圈的周长 C = 2*Pi*R*cos(W);
所以一个经度的千米就是 C/360
一个纬度的千米是2*Pi*R/360.



tfp 2010-01-12
  • 打赏
  • 举报
回复

用gps设备测出多个点的经度纬度, A,B,C,D,E,.. 然后求出这几个点组成的地区的面积公顷

三纬。。。 应该不用吧?
加载更多回复(24)

33,025

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧