我的问题与这个类似的问题有点相关,它链接到一个非常复杂的解决方案 - 但我想了解的是这样的结果:
使用 Mysql Geometry 字段存储我适当运行的小多边形
select AREA(myPolygon) where id =1
超过它,得到一个像 2.345 的值。所以谁能告诉我,这个数字代表什么,因为存储的值是描述多边形的长/纬度集?
仅供参考,我正在研究的区域相对较小(停车场等),并且该区域不必精确 - 我不会担心地球的曲率。
2.345是什么?谢谢,这让我很烦。
简短的回答是,您的面积计算单位基本上没有意义([deg lat diff] * [deg lon diff])。即使地球的曲率不会在面积计算中发挥作用(因为您的区域是“小”),但它确实在计算纬度/经度多边形坐标之间的距离时起作用。
由于与赤道 ( http://en.wikipedia.org/wiki/Longitude#Degree_length )的距离不同,经度的度数不同,因此实际上没有将您的区域直接转换为 m^2 或 km^2。它取决于赤道的南北距离。
如果你总是有矩形多边形,你可以只存储对角坐标并使用以下方法计算面积:PHP Library: Calculate a bounding box for a given lat/lng location
最“正确”的做法是使用 XY(米)坐标(可能是使用 WGS-84 椭球的 UTM)存储多边形,可以使用以下 Java 库从纬度/经度计算得出:Java,将 lat/lon 转换为 UTM。然后您可以继续使用 MySQL AREA() 函数。