我应该在数据库中存储多少有效数字用于GPS坐标?

时间:2009-12-22 16:29:20

标签: mysql database database-design gps rdbms

我的MySQL数据库中包含经度和纬度坐标(GPS数据)。

目前存储为:

column     type
------------------------
geolat     decimal(10,6)
geolng     decimal(10,6)

问题:我是否真的需要与decimal(10,6)一样大的数据类型来正确存储坐标数据?

由于我在经度和纬度上有一个综合索引,因此这个索引大小很大。如果我能在不妥协的情况下将其缩小,那就太棒了。

9 个答案:

答案 0 :(得分:35)

WGS84数据通常以完全十进制表示法给出坐标,通常有5位小数,因此对于纬度(-90到+90),您可以使用小数(7,5)(-90.00000到90.00000) ),对于经度,你可以使用小数(8,5)(-180.00000到180.00000)。

.00001 gives an precision of around a meter at the equator

DECIMAL/NUMERIC data type is a fixed precision scaled integer以及范围的正面和负面部分始终可用 - 它们不会影响精度或比例(显然需要存储空间,但您无法选择十进制)

答案 1 :(得分:4)

我一直在小数点后用六位数。我曾经根据军事合同进行GIS工作,这已经足够了。

答案 2 :(得分:3)

请记住,减少数据比增加数据更容易。通常,在重新测量之前,甚至不可能提高数据准确性。重新测量需要付出代价。我不知道你的情况或行业,我会说尽可能多地捕获数据/特异性。

您可以从此集中剔除您实际使用的数据。如果您最终需要更高程度的特异性,您可以随时重新计算而无需重新计算。

另外,我不确定索引原始数据是最好的事情,因为它不是一组离散的元素。创建一个不太准确/较小数据点的表会使索引更小。

答案 3 :(得分:3)

这取决于您进行的调查的准确性。一般来说:

  • 小数点后6位代表的精度为约10厘米
  • 约1厘米的小数点后7位
  • 13位小数-原子结构的准确性...

因此,除非进行非常精确的研究(即构造板块运动),否则使用6位数字就足够了。


这是full answer from whuber (GIS stack overflow):

的副本

准确度是您的测量与真实值一致的趋势。 精度是您的测量确定实际值的程度。问题在于准确性和准确性之间的相互作用。

作为一般原则,记录测量值并不需要太多的精度。使用过多的精度可能会误导人们,使他们认为精度比实际精度更高。

通常,当降低精度时(即使用较少的小数位),您可能会失去一些精度。但是多少钱?很高兴知道电表最初是由法国人定义的(在法国革命期间,他们抛弃了旧系统,并热情地将它们替换为新系统),因此有一千万个带您将您从赤道带到了一根杆子。那是90度,因此一个纬度覆盖大约10 ^ 7/90 = 111,111米。 (“大约”,因为同时米的长度有所变化。但这无关紧要。)此外,经度(东西向)的长度与纬度大约相同或更小,因为当我们从赤道向任一极移动时,纬度圆会缩小到地球的轴心。因此,始终可以确定,小数点后第六位的小数位具有111,111 / 10 ^ 6 =大约1/9米=大约4英寸的精度。

因此,如果您的准确度要求是,例如给定或接受10米,那么比1/9米就算什么:通过使用六个小数位,您基本上不会失去任何准确度。如果您的精度要求是不到厘米,那么您至少需要保留七个小数位,可能还需要八个小数位,但是更多的东西对您没有好处。

小数点后十三位会将位置固定为111,111 / 10 ^ 13 = 1埃,约为小原子厚度的一半。

利用这些想法,我们可以构建一个表格,以十进制度表示每个数字所表示的含义:

  • 标志告诉我们我们是北方还是南方,东方还是西方 地球。
  • 一个非零的百位数字告诉我们我们使用的是经度,而不是纬度!
  • 十位数表示大约1000公里的位置。它为我们提供了有关我们所处的大陆或海洋的有用信息。
  • 单位数字(小数点后一位)给出了长达111公里(60海里,约69英里)的位置。它可以告诉我们 大概是我们所在的大州或国家。
  • 第一小数点位置的价值高达11.1公里:它可以区分一个位置 邻近的大城市的大城市。
  • 第二位小数位置是 价值长达1.1公里:它可以将一个村庄与另一个村庄分隔开。
  • 小数点后第三位的值最大为110 m:可以识别较大的 农业领域或机构校园。
  • 小数点后第四位 价值高达11 m:可以识别一块土地。它是 与未经校正的GPS单位的典型精度相当 干扰。
  • 第五个小数点位置的最大价值为1.1 m: 区分树木。精度达到此水平 商业GPS装置只能通过差分来实现 更正。
  • 小数点后第六位的位置价值不超过0.11 m:您可以 用它来详细地布置结构,用于设计 景观,修路。它应该已经足够了 跟踪冰川和河流的运动。这可以通过 使用GPS采取艰苦的措施,例如差分 更正的GPS。
  • 小数点后第七位的位置最大为11毫米: 非常适合进行很多测量,并且接近基于GPS的极限 技术可以实现。
  • 小数点后八位的价值最高为1.1 毫米:这对于绘制构造板块的运动和 火山的运动。永久,校正,持续运行的GPS 基站可能能够达到这一精度水平。
  • 小数点后九位的位置最大为110微米:我们正在进入 显微镜范围。对于几乎所有可能的应用 地球位置,这是过大的,并且比 任何测量设备的准确性。
  • 十个或更多小数位 表示使用了计算机或计算器,没有注意 支付了多余的小数位没有用的事实。小心, 因为除非您是从设备上读取这些数字的人, 这可能表明加工质量低下!

答案 4 :(得分:1)

如果这是用于房地产你真的有这么多的房子,每行节省2个字节是显而易见的吗?除非有充分的理由不这样做,否则我会尽可能保持精确度。

答案 5 :(得分:0)

这取决于您希望定位的准确程度。显然越大越精确,越小,结果越宽。我建议保持你的价值更大,因为它不是真正的数据。

答案 6 :(得分:0)

NMEA Lat / lon输出中的常规GGA声望仅为3十四度,在赤道处的分辨率大约为10米。有些品牌会添加一个自定义额外数字,以提供1米。

4位数mm / mm也很常见。

如果您使用的是高端精密RTK-GPS,则可能需要更多位置才能获得mm精度

答案 7 :(得分:0)

您还可以尝试以不同的单位存储(和/或使用)坐标。我工作的一个项目,我们所有的坐标都以毫秒存储为长(也许是整数,已经过了几年)。这部分是为了速度和存储空间(这是一个嵌入式系统)。但是同样的逻辑也适用于此。

答案 8 :(得分:0)

如果所有坐标都在特定区域,请修复一些中心点(即平均当前点和圆形以获得您可以大声说出的数字),然后将坐标存储为相对于此点。这样你就可以跳过前2-4个最重要的数字,从而节省大笔费用。但请记住只能通过Class或VIEW处理这些数据,这样可以返回真正的WGS84坐标。