一尘不染

我应如何准确存储纬度和经度?

mysql

我在这里阅读这个问题:

在SQL数据库中存储经度和纬度数据时应使用哪种数据类型?

似乎普遍的共识是使用Decimal(9,6)是可行的方法。我的问题是,我真的需要多少精度?

例如,Google的API返回如下结果:

"lat": 37.4219720,
"lng": -122.0841430

在-122.0841430中,我需要几位数?我已经阅读了几本指南,但是我从中没有足够的道理来解决这个问题。

为了更精确地回答我的问题:如果我想在准确位置的50英尺范围内保持准确,我需要存储多少个小数点?

也许一个更好的问题实际上是一个非编程问题,但是它将是:每个小数点给您的准确度是多少?

这简单吗?

  1. 项目清单
  2. x00 = 6000英里
  3. xx0 = 600英里
  4. xxx = 60英里
  5. xxx.x = 6英里
  6. xxx.xx = 0.6英里
  7. 等等?

阅读 357

收藏
2020-05-17

共1个答案

一尘不染

赤道精度与小数位的关系

decimal  degrees    distance
places
-------------------------------  
0        1.0        111 km
1        0.1        11.1 km
2        0.01       1.11 km
3        0.001      111 m
4        0.0001     11.1 m
5        0.00001    1.11 m
6        0.000001   0.111 m
7        0.0000001  1.11 cm
8        0.00000001 1.11 mm

参考:https :
//en.wikipedia.org/wiki/Decimal_degrees#Precision

2020-05-17