Cit*_*zen 93 mysql geolocation
我在这里读到这个问题:
在SQL数据库中存储纬度和经度数据时要使用的数据类型是什么?
似乎普遍的共识是使用Decimal(9,6)是要走的路.对我来说,问题是,我真的需要这么准确吗?
例如,Google的API会返回如下结果:
"lat": 37.4219720,
"lng": -122.0841430
Run Code Online (Sandbox Code Playgroud)
超出-122.0841430,我需要多少位数?我已经阅读了几本指南,但我无法从中得到足够的理解来解决这个问题.
更确切地说,在我的问题中:如果我想在精确位置50英尺范围内准确,我需要存储多少小数点?
也许一个更好的问题实际上是一个非编程问题,但它会是:每个小数点给你多少准确?
这很简单吗?
小智 174
赤道的准确度与小数位数
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
Run Code Online (Sandbox Code Playgroud)
参考:https://en.wikipedia.org/wiki/Decimal_degrees#Precision
Gus*_*tav 19
+----------------+-------------+
| Decimals | Precision |
+----------------+-------------+
| 5 | 1m |
| 4 | 11m |
| 3 | 111m |
+----------------+-------------+
Run Code Online (Sandbox Code Playgroud)
如果你想要50英尺(15米)的精度去4位数.所以decimal(9,6)
小智 15
我设计数据库并且一直在研究这个问题.我们使用带有Oracle后端的现成应用程序,其中数据字段被定义为允许17个小数位.荒谬!那是千分之一英寸.世界上没有GPS仪器是那么准确.所以让我们放下17位小数并处理实际问题.政府保证他们的系统对"最坏情况下的"伪距准确度为7.8米,95%置信水平"是好的,但接着说实际的FAA(使用他们的高质量仪器)已经显示GPS读数通常是好的一米之内.
所以你必须问自己两个问题:1)你的价值观来源是什么?2)数据将用于什么?
手机不是特别准确,谷歌/ MapQuest读数可能只有4或5位小数.高质量的GPS仪器可能会让你6(在美国境内).但捕获更多不仅是浪费打字和存储空间.此外,如果对值进行了任何搜索,那么用户最好知道6将是他/她应该寻找的最多(显然,所输入的任何搜索值应首先舍入到与搜索的数据值相同的精度. ).
此外,如果您要做的就是在Google地图中查看某个位置或将其放入GPS中,那么就有四到五个就足够了.
我不得不嘲笑周围的人输入所有这些数字.他们究竟在哪里进行测量?前门把手?邮箱在前面?建筑中心?细胞塔顶部?并且......每个人都一直在同一个地方接受它吗?
作为一个好的数据库设计,我会接受来自用户的值可能超过五位十进制数字,然后舍入并仅捕获五个一致性[如果你的乐器是好的并且你的最终用途保证它可能是六个].
考虑到球体的各个部分和对角线距离,以下是可用精度表:
Datatype Bytes resolution
------------------ ----- --------------------------------
Deg*100 (SMALLINT) 4 1570 m 1.0 mi Cities
DECIMAL(4,2)/(5,2) 5 1570 m 1.0 mi Cities
SMALLINT scaled 4 682 m 0.4 mi Cities
Deg*10000 (MEDIUMINT) 6 16 m 52 ft Houses/Businesses
DECIMAL(6,4)/(7,4) 7 16 m 52 ft Houses/Businesses
MEDIUMINT scaled 6 2.7 m 8.8 ft
FLOAT 8 1.7 m 5.6 ft
DECIMAL(8,6)/(9,6) 9 16cm 1/2 ft Friends in a mall
Deg*10000000 (INT) 8 16mm 5/8 in Marbles
DOUBLE 16 3.5nm ... Fleas on a dog
Run Code Online (Sandbox Code Playgroud)
-- http://mysql.rjweb.org/doc.php/latlng#representation_choices
归档时间: |
|
查看次数: |
59105 次 |
最近记录: |