存储纬度和经度的最佳 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 数据类型是啥?的主要内容,如果未能解决你的问题,请参考以下文章