首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我应该如何准确地存储纬度和经度?

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

Stack Overflow用户
提问于 2011-08-24 05:12:07
回答 7查看 71.5K关注 0票数 116

我在这里读到这个问题:

What datatype to use when storing latitude and longitude data in SQL databases?

似乎普遍的共识是使用Decimal(9,6)是可行的。对我来说,问题是,我真正需要它的准确性是多少?

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

代码语言:javascript
复制
"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= .6 List
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-11-27 03:02:35

精度与赤道小数位数

代码语言:javascript
复制
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

票数 207
EN

Stack Overflow用户

发布于 2011-08-24 08:14:17

代码语言:javascript
复制
+----------------+-------------+
|    Decimals    |  Precision  |
+----------------+-------------+
|    5           |  1m         |
|    4           |  11m        |
|    3           |  111m       |
+----------------+-------------+

如果你想要50英尺(15米)的精度,去4位数。所以decimal(9,6)

票数 20
EN

Stack Overflow用户

发布于 2014-04-30 02:43:48

我设计数据库,研究这个问题已经有一段时间了。我们使用现成的应用程序和Oracle后端,其中数据字段定义为允许17位小数。太可笑了!也就是千分之一英寸。世界上没有一台GPS仪器是如此精确的。因此,让我们把17位小数放在一边,并处理实际问题。政府保证他们的系统在“最坏的情况下,在95%的置信水平下,伪距精度为7.8米”,但接着又说,实际的联邦航空局(使用他们的高质量仪器)显示的GPS读数通常好到一米以内。

因此,您必须问自己两个问题: 1)您的值的来源是什么? 2)数据将用于什么?

手机并不是特别准确,Google/MapQuest的读数可能只有4到5位小数。一台高质量的GPS仪器可能会让你得到6美元(在美国境内)。但是,捕获比这更多的内容是对键入和存储空间的浪费。此外,如果对值执行任何搜索,用户最好知道6是他/她应该查找的最大值(显然,输入的任何搜索值都应该首先四舍五入到与要搜索的数据值相同的精度)。

此外,如果你要做的只是在谷歌地图中查看一个位置或将其放入GPS中才能到达,那么四五个就足够了。

我不得不嘲笑周围的人输入所有这些数字。他们到底在哪里进行测量呢?前门把手?信箱在前面吗?建筑的中心?手机发射塔的顶部?还有..。每个人都一直在同一个地方使用它吗?

作为一个好的数据库设计,我会接受来自用户的值,可能会超过五位小数,然后为了一致性,只舍入和捕获五位,如果你的仪器很好,并且你的最终用途允许的话,可能是六位。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7167604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档