存储经度和纬度值需要哪种数据类型[重复]

Posted

技术标签:

【中文标题】存储经度和纬度值需要哪种数据类型[重复]【英文标题】:Which data type is required to store longitude and latitude values [duplicate] 【发布时间】:2018-09-23 17:46:09 【问题描述】:

我想在数据库中存储一个 lng 和 lat 的值,但我对应该使用哪种数据类型存储以及存储 lng 和 lat 值需要多少最大和最小长度感到困惑。

【问题讨论】:

【参考方案1】:

这个问题是discussed before,但值得注意的是,讨论中没有提到 mysql 的GIS data types。 POINT(或其他几何数据类型之一)也可能在这里做得很好。

之前的讨论得出结论,使用 DECIMAL(10, 8) 表示纬度,使用 DECIMAL(11, 8) 表示经度是合适的。

【讨论】:

这种精度可以提供大约 1 毫米的分辨率。这对于大多数用途来说是多余的。 @BillKarwin 哪种数据类型,点?我仍然喜欢使用为特定用途设计的本机数据类型,即使分辨率比需要的要好,这样我们就可以让 MySQL 处理涉及的任何数学。除了浪费的存储开销,这里还有什么不使用 GIS 数据类型的理由吗? 我想知道应用程序如何查询纬度/经度数据。例如,不清楚 JDBC 如何将 POINT 映射到 java 类型。使用 DECIMAL 可能更容易。 另外 MySQL 直到 5.6 版本才支持 InnoDB 中的 POINT,并且直到 5.7 版本才支持 GIS 类型的空间索引。如果您无法使用旧版本,我更喜欢使用 DECIMAL 而不是使用 MyISAM 表。 我添加了更多选择here

以上是关于存储经度和纬度值需要哪种数据类型[重复]的主要内容,如果未能解决你的问题,请参考以下文章

用于存储纬度和经度的数据类型 [重复]

在 MySQL 数据库中存储纬度/经度时使用的理想数据类型是啥?

float 和 double 数据类型是不是适合存储纬度和经度? [复制]

8 位小数的纬度/经度应该使用哪种 MySQL 数据类型?

存储纬度和经度的最佳 mysql 数据类型是啥?

在 Mysql 中存储经度/纬度的数据类型