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

Posted

技术标签:

【中文标题】存储纬度和经度的最佳 mysql 数据类型是啥?【英文标题】:What is the best mysql datatype for storing latitudes and Longitudes?存储纬度和经度的最佳 mysql 数据类型是什么? 【发布时间】:2018-01-27 23:07:43 【问题描述】:

我对以下 2 个已经提出的问题感到困惑。

    What is the ideal data type to use when storing latitude / longitudes in a mysql database? What MySQL data type should be used for Latitude/Longitude with 8 decimal places?

在上述问题中,有人说十进制是一种很好的数据类型,而有人说应该使用MySQL's spatial extensions,而其他人说使用浮点数很好,因为谷歌也在他们的application here 中使用浮点数。那么这个问题的最终解决方案应该是什么?

谢谢

【问题讨论】:

如果您只需要 lat 和 lng 作为分隔值,最好是十进制(12,8) @scaisEdge 感谢您的评论,您知道谷歌在某些地方给了我这个值。 39.95467480000001, -75.19447579999996 那么我们如何将其存储为十进制(12,8)。 decimal(12,8) 建议如果您需要更高的精度,请使用更大的小数 .. 在我的项目中,我使用 decimal(16,12) .. 这是一个接近毫米的精度在谷歌地图上 @scaisEdge 我认为这很棒。 @scaisEdge 能否请您给出详细的答案,以便我接受并帮助他人。谢谢 【参考方案1】:

算一算!六位小数足以区分两个接吻的恋人。 8或12是可笑的。 Here 是可能选择的列表。

FLOAT 为您提供 1.7 米或 5.6 英尺的分辨率。 39.95467480000001, -75.19447579999996是显示39.9546748, -75.1944758的神器。

【讨论】:

【参考方案2】:

根据我的经验,如果您只需要 lat 和 lng 作为分隔值,最佳解决方案是基于数据类型

decimal(16,12)

使用这种格式,您可以在地图上以非常接近毫米的精度定位点,这对于法线贴图应用来说绰绰有余

【讨论】:

非常感谢您分享您的经验。

以上是关于存储纬度和经度的最佳 mysql 数据类型是啥?的主要内容,如果未能解决你的问题,请参考以下文章

纬度和经度的数据类型是啥?

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

在用户最后一次触摸屏幕时查找经度和纬度的最佳方法是啥?

从网站本地化手机(获取其经度和纬度)的最佳方法是啥?

使用nodejs和数据库存储GPS纬度和经度的最佳方法

mysql存储地图经纬度的表怎么设计?