我应该如何准确存储纬度和经度?
我在这里阅读了这个问题:
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?
有这么简单吗?
- 列表项
- x00 = 6000 英里
- xx0 = 600 英里
- xxx = 60 英里
- xxx.x = 6 英里
- xxx.xx = .6 英里
- 等等?
推荐答案
赤道上的精度与小数位数
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
相关文章