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

2021-11-20 00:00:00 geolocation mysql

我在这里阅读了这个问题:

I was reading this question here:

什么数据类型在SQL数据库中存储经纬度数据时使用?

而且似乎普遍的共识是使用 Decimal(9,6) 是要走的路.我的问题是,我真的需要这个有多准确?

And it seems the general consensus is that using Decimal(9,6) is the way to go. The question for me is, how accurate do I really need this?

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

For instance, Google's API returns a result like:

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

在 -122.0841430 中,我需要多少位数字?我已经阅读了几本指南,但我无法从它们中获得足够的意义来解决这个问题.

Out of -122.0841430, how many digits do I need? I've read several guides but I can't make enough sense out of them to figure this out.

在我的问题中更准确地说:如果我想在准确位置的 50 英尺内保持准确,我需要存储多少个小数点?

To be more precise in my question: If I want to be accurate within 50 feet of the exact location, how many decimal points do I need to store?

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

Perhaps a better question would actually be a non-programming question, but it would be: how much more accurate does each decimal point give you?

有这么简单吗?

  1. 列表项
  2. x00 = 6000 英里
  3. xx0 = 600 英里
  4. xxx = 60 英里
  5. xxx.x = 6 英里
  6. xxx.xx = .6 英里
  7. 等等?

推荐答案

赤道上的精度与小数位数

Accuracy versus decimal places at the equator

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

相关文章