MySQL存储纬度,经度高精度

时间:2012-02-10 20:44:41

标签: mysql types storage latitude-longitude

我目前将lat / lng值存储在数据库中,精度为6位小数。但是,我需要存储在此数据库中的某些值具有12位小数精度。我的数据库目前设置纬度和长度

FLOAT(10,6)

是否可以设置存储类型以便它可以处理6个十进制或12个十进制lat / lng值?

2 个答案:

答案 0 :(得分:4)

使用DOUBLE数据类型。

您应该能够非破坏性地改变现有表格以便以这种方式工作。例如,

alter table `mytable` 
   change `LAT` `LAT` double NULL , 
   change `LONG` `LONG` double NULL 

但请注意不要夸大数据的准确性。普通float 32位浮点纬度/长值(最佳精度)的epsilon在地面上几厘米。 double的epsilon距离很小。您的纬度/经度信息非常精确,这几乎是不可思议的。如果是这样的话,除非你使用复杂的制图投影,否则它无关紧要:计算距离的典型半正式公式假定地球是一个完美的球体。事实并非如此。地球的赤道凸起大到足以使球形假设在距离更精确的情况下分解,而不是几厘米。

答案 1 :(得分:2)

你想看看使用空间扩展.. 看看这个链接

MYSQL and using Spatial Extensions