LBS知识之经纬度精度

9 sec read

在做LBS的应用的时候考虑到了这样一个问题,经纬度后面的小数的位数对于精度影响有多少?

通过百度或者Google,可以获得如下信息:

在纬度相等的情况下:

  • 经度每隔0.00001度,距离相差约1米;
  • 经度每隔0.0001度,距离相差约10米;
  • 经度每隔0.001度,距离相差约100米;
  • 经度每隔0.01度,距离相差约1000米;
  • 经度每隔0.1度,距离相差约10000米。

在经度相等的情况下:

  • 纬度每隔0.00001度,距离相差约1.1米;
  • 纬度每隔0.0001度,距离相差约11米;
  • 纬度每隔0.001度,距离相差约111米;
  • 纬度每隔0.01度,距离相差约1113米;
  • 纬度每隔0.1度,距离相差约11132米。
但是上诉的答案是否是正确的呢?我们先来了解下地球的一些基本信息:
  • 地球的赤道半径 = 6378.1 公里
  • 地球的极半径 = 6356.8 公里
  • Latitude的范围是:-90 到 +90
  • Longitude的范围:-180 到 +180
  • 地球参考球体的周长:40075016.68米
经纬度划分规则如下图:
lat-lon
从上述的图片中可以看到,经度和纬度的划分规则是不一样的。所以网上搜索的经纬度经度对于精度的影响并不正确的。
纬度每格1度影响的距离 = 极半径*π/180=110.95 km
经度每隔1度影响的距离(赤道)= 赤道半径*π/180 = 111.32 km,维度越靠近南北极,影响的距离越小。
如何计算经纬度之间的距离?
基于球面模型的地理空间距离计算公式。
earth
该模型将地球看成圆球,假设地球上有A(ja,wa),B(jb,wb)两点(注:ja和jb分别是A和B的经度,wa和wb分别是A和B的纬度),A和B两点的球面距离就是AB的弧长,AB弧长=R*角AOB(注:角AOB是A跟B的夹角,O是地球的球心,R是地球半径,约为6367000米)。如何求出角AOB呢?可以先求AOB的最大边AB的长度,再根据余弦定律可以求夹角。

如何求出AB长度呢?

google maps脚本中的计算距离代码:

还原成公式为:

math

拓展信息:

eath2
地球其实不是圆的,当然也不是平的,地球虽是个球体,但是由于受到自转时的惯性及离心力的作用,他并非完美的圆形。所以地球最高点并不是珠穆朗玛峰,虽然其海拔有8848米,由于地球不是完美的球型,所以赤道附近的山峰其实离星空更近一些,因此地球最高点理论上是厄瓜多尔博拉索山(Mount Chimborazo),它的海拔虽然有6272米,却比珠峰”高“出2400米。
打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

Chrome扩展程序代码路径

Chrome中安装了一个翻译的扩展程序,但该扩展程序对“复制”进行了监听,每次复制翻译的内容都弹出一个框要求注
8 sec read

Chrome占用大量内存的解决方法

在日常使用Chrome的过程中会发现其非常的占用内存。原因是Chrome对每个插件和浏览器标签页都新开一个单独
6 sec read

One Reply to “LBS知识之经纬度精度”

发表评论

电子邮件地址不会被公开。 必填项已用*标注