我目前将lat / lng值存储在数据库中,精度为6位小数。但是,我需要存储在此数据库中的某些值具有12位小数精度。我的数据库目前设置纬度和长度
FLOAT(10,6)
是否可以设置存储类型以便它可以处理6个十进制或12个十进制lat / lng值?
答案 0 :(得分:4)
使用DOUBLE
数据类型。
您应该能够非破坏性地改变现有表格以便以这种方式工作。例如,
alter table `mytable`
change `LAT` `LAT` double NULL ,
change `LONG` `LONG` double NULL
但请注意不要夸大数据的准确性。普通float
32位浮点纬度/长值(最佳精度)的epsilon在地面上几厘米。 double
的epsilon距离很小。您的纬度/经度信息非常精确,这几乎是不可思议的。如果是这样的话,除非你使用复杂的制图投影,否则它无关紧要:计算距离的典型半正式公式假定地球是一个完美的球体。事实并非如此。地球的赤道凸起大到足以使球形假设在距离更精确的情况下分解,而不是几厘米。
答案 1 :(得分:2)
你想看看使用空间扩展.. 看看这个链接