Mysql几何AREA()函数返回coords长/ lat时的确切内容?

时间:2011-05-12 17:03:56

标签: mysql geometry polygon latitude-longitude area

我的问题与this similar one有些相关,它链接到一个相当复杂的解决方案 - 但我想要理解的是这样的结果:

使用Mysql Geometry字段存储一个小多边形我正式运行

select AREA(myPolygon) where id =1 

通过它,得到了像2.345这样的值。所以任何人都可以告诉我,这个数字代表什么,因为存储的值是描述多边形的长/ lat集?

仅供参考,我正在研究的地区相对较小(停车场等),而且这个区域不一定非常精确 - 我不会担心地球的曲率。

2.345的什么?谢谢,这让我烦恼。

1 个答案:

答案 0 :(得分:2)

简短的回答是,你的面积计算单位基本上没有意义([deg lat diff] * [degon 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, convert lat/lon to UTM。然后,您可以继续使用MySQL AREA()函数。