请记住,我将在lat / long对上执行计算,什么数据类型最适合与MySQL数据库一起使用?
当前回答
GeoLocationCoordinates返回一个双数据类型,以十进制表示位置的经纬度。你可以试着用double。
其他回答
在GIS中使用MySQL的空间扩展。
FLOAT应该能给你所需的所有精度,并且比将每个坐标存储为字符串或类似的东西更好地用于比较函数。
如果你的MySQL版本低于5.0.3,你可能需要注意某些浮点比较错误。
在MySQL 5.0.3之前,DECIMAL列以精确的精度存储值,因为它们是用字符串表示的,但DECIMAL值的计算是使用浮点操作完成的。从5.0.3开始,MySQL执行DECIMAL操作的精度为64位十进制数字,这应该可以解决DECIMAL列最常见的不准确问题
根据这篇维基文章 http://en.wikipedia.org/wiki/Decimal_degrees#Accuracy MySQL中适当的数据类型是Decimal(9,6),用于存储经度和纬度 单独的字段。
MySQL使用double为所有浮点数… 所以使用double类型。在大多数情况下,使用float会导致不可预测的四舍五入值
使用DECIMAL(8,6)表示纬度(90到-90度),使用DECIMAL(9,6)表示经度(180到-180度)。小数点后6位对于大多数应用程序都是可以的。两者都应该“有符号”以允许为负值。