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

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

  1. What is the ideal data type to use when storing latitude / longitudes in a MySQL database?
  2. 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 能否请您给出详细的答案,以便我接受并帮助他人。谢谢

标签: php mysql google-maps sqldatatypes


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    decimal(16,12)
    

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

    【讨论】:

    • 非常感谢您分享您的经验。
    猜你喜欢
    • 1970-01-01
    • 2011-11-08
    • 2010-09-27
    • 2011-12-30
    • 2011-08-01
    • 2012-03-22
    • 2012-12-01
    • 2011-09-15
    • 2010-09-14
    相关资源
    最近更新 更多