我应该多准确地存储纬度和经度?

2022-01-14 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

相关文章