请记住,我将在lat / long对上执行计算,什么数据类型最适合与MySQL数据库一起使用?
当前回答
我们将纬度/经度X 1,000,000作为数字存储在oracle数据库中,以避免使用双数舍入错误。
已知纬度/经度精确到小数点后第6位是10厘米,这就是我们所需要的。许多其他数据库也将lat/long存储到小数点后第6位。
其他回答
不需要走太远,根据谷歌地图,最好是FLOAT(10,6)的纬度和液化天然气。
我建议您使用浮动数据类型的SQL Server。
在GIS中使用MySQL的空间扩展。
PostGIS中的空间函数比MySQL中的空间函数更具功能性(即不局限于BBOX操作)。看看:链接文本
FLOAT应该能给你所需的所有精度,并且比将每个坐标存储为字符串或类似的东西更好地用于比较函数。
如果你的MySQL版本低于5.0.3,你可能需要注意某些浮点比较错误。
在MySQL 5.0.3之前,DECIMAL列以精确的精度存储值,因为它们是用字符串表示的,但DECIMAL值的计算是使用浮点操作完成的。从5.0.3开始,MySQL执行DECIMAL操作的精度为64位十进制数字,这应该可以解决DECIMAL列最常见的不准确问题