请记住,我将在lat/long对上执行计算,哪种数据类型最适合与MySQL数据库一起使用?
在ANSI SQL兼容数据库中存储纬度或经度数据时,哪种数据类型最合适?应该float
使用,或decimal
,或......?
我知道Oracle,MySql和SQL Server已经添加了一些专门用于处理地理数据的特殊数据类型,但我对如何将信息存储在"普通的"SQL数据库中感兴趣.
假设我有一个名为 的 Rails 模型Position
,两列latitude
和longitude
(均定义为浮动)。我已经用一些位置值填充了模型。现在我试图根据它的纬度找到位置:
positions = Position.where('positions.latitude = ?', 50.0)
Run Code Online (Sandbox Code Playgroud)
返回零。即使我尝试这个:
lat = Position.first.latitude
positions = Position.where('positions.latitude = ?', lat)
Run Code Online (Sandbox Code Playgroud)
结果为零。我的生产数据库是mysql。上面的代码在开发中(sqlite)。我的假设是它与数据类型的处理方式有关,但我不明白。有人有什么想法吗?