给定一系列GPS坐标对,我需要计算多边形的面积(n-gon).这相对较小(不大于50,000平方英尺).通过对来自世界文件的数据应用仿射变换来创建地理编码.
我试图通过将地理编码转换为笛卡尔坐标来使用两步法:
double xPos = (lon-lonAnchor)*( Math.toRadians( 6378137 ) )*Math.cos( latAnchor );
double yPos = (lat-latAnchor)*( Math.toRadians( 6378137 ) );
Run Code Online (Sandbox Code Playgroud)
然后我使用叉积计算来确定面积.
问题是结果的准确性有点偏差(约1%).我有什么可以改进的吗?
谢谢.
我搜索了解释和算法如何计算地球的多边形表面积.我发现了这个,这
让我们说我已经得到了凸壳
[56.992666,24.126051], [58.00282,25.930147], [58.787955,25.565078], [59.4997,24.861427], [59.463678,24.711365], [59.395767,24.599837], [56.992666,24.126051]
从第二个链接第一个答案使用Python库,即使我们假设地球是球体(我是对的),第二个答案方法也不会给出相当精确的区域?如果我们假设地球是球体,我可以采取什么方法来计算面积(更便宜)?
另外,我已经查找了不同的库(geotools.org等),但在他们的文档中没有找到有关区域计算的信息.