LBS知识之经纬度精度

在做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

学会这些原则,成为自己的创始人

同程商学院第一课:《学会这些原则,成为自己的创始人》学习心得: 一、销售思维:“我能帮你做什么”->“我

Anaconda 修改源镜像流程

今天在使用conda安装包时,发现老是下载到一半报HTTP错误,中断了下载。且下载速度非常的慢: PS C:\

Nginx开启图片防盗链配置

由于服务器最近几天被入侵,在分析日志的时候发现很多盗链请求。所以顺手给Nginx加了个防盗链配置。 配置内容:

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

pbdm进行回复 取消回复

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