mysql - 合适的 mysql 数据类型将纬度和经度存储在单独的字段中

标签 mysql types

我已将纬度和经度存储在不同的字段中。我从谷歌获取纬度和经度坐标,还使用它们使用一些公式找到附近的地方。现在有时纬度和经度值会像这样达到小数点后 15 位 --> 15.123456789000001。存储这些值的最佳数据类型是什么?现在我正在使用 Double 来存储纬度和经度坐标。

提前致谢

最佳答案

99% 的情况下,您选择的任何 float 据类型都应该足够了。

是的,我知道它们不能总是精确地表示精确到小数点后 15 位的值,但是没关系。纬度/经度到小数点后 15 位是指定一个位置,其(声称的)精度约为一对氢原子的宽度。您只需要小数点后六位即可获得一米以内的精度,这对于大多数情况来说已经足够了。很少有人需要超过厘米级的精度(8 个位置),而 10 米甚至 100 米的精度对于许多应用来说已经足够了。

当然,这一切都是假设原始数据源首先是准确的。我手机的 GPS 很少声称精度优于 10m(即便如此,它的 map 有一半的时间没有显示我应该在 10m 圈内的实际位置),因此以更高的精度存储位置将毫无意义,而且误导。诚然,您使用的数据源可能比集成到手机中的廉价 GPS 接收器更准确,但即便如此,它也不太可能一直精确到分子级。

关于mysql - 合适的 mysql 数据类型将纬度和经度存储在单独的字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7144484/

相关文章:

PHP/MySQL : Displaying data from different tables based on a users ID

c++ - 打印像二进制数一样存储的有符号整数

sorting - 根据异构标准进行 map 比较

Haskell 无法将预期类型 float 与实际类型 'a' 匹配

c++ - 使用函数模板时出错

mysql - 使用 MySQL 每周发送电子邮件

Mysql 无索引自增

angular2 在构造函数中使用参数扩展服务

php - 从数据库中检索给定日期范围内的可用房间及其床位

mysql - 如何提高 MySQL DB 的 InnoDB 每秒写入速度