PHP如何通过坐标计算不规则图形的面积

现在有一个需求是通过坐标计算图形的面积,现在知道图形每个点的经纬度坐标,用的是百度坐标,请问如何计算出面积?
图片描述

阅读 4.6k
2 个回答

你上学的时候干嘛了,这个要先根据坐标先分解成长方形和三角形,然后算出面积再相加,这问题小学生都会,莫非这种连曲线都没有的东西你想用微积分?

顺便说下,百度地图本来就可以计算覆盖面面积,完全不需要你自己计算,你算出来的不准就算了,单位也得根据比例尺换算

https://blog.csdn.net/chengua...
看看这个

不考虑内在算法的话,可以尝试用postgis。它是PostgreSQL的一个增强插件,里面可以轻易以特定的坐标类别存储数据,查询面积距离等地理要素结果。缺点是要和数据库进行一次通信。

考虑直接用源语言(比如php)实现的话,可以考虑先了解一下一个叫Shoelace的公式。这个是根据坐标离散计算多边形。如果所选多边形非凸会有问题。

考虑其他实现算法的话面积计算有多种方式,可以是迭代切分成小三角形通过矢量计算,或者近似替代计算。后者的话是用一个单位正方形来模拟你要求的不规则多边形,其中没覆盖全的用半个单位正方形替代,得到一个近似的由很多个单位正方形组成的图像,再用单位正方形个数*单位面积得到。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题