gcj_02和wgs84地理坐标系的相互转换原理

百度Place API 的一点解释

百度的Place API 返回值的坐标系统是百度经纬度坐标系统算法

请求参数中的coord_type控制的是请求参数中的bounds或者location的坐标系统api

gcj_02 转换为wgs84的原理

地理坐标的加密存在局限性。app

由于:函数

  1. 地理坐标是连续的(空间的本质)
  2. 加密后的地理坐标是连续的(地图的本质)
  3. 加密函数是连续的(地图的本质)加密

  4. 若是假设加密函数是$f(x)$
    咱们还能够直观地知道,
    对于邻近的两个地理坐标x1,x2
f(x1) - f(x2) \approx x1 - x2

f(x) - x = \delta

$\delta$的值应该是无规律的,小的。
道理很简单,由于加密后的地图,仍然要是可用的地图。code

  1. 地理坐标是不精确地,容许偏差(测量偏差,数字计算机的精度)
  2. GPS的精度大概是百万分之一度[1]

基于此,假设加密函数$f(x)$已知,咱们能够用数值的方法来解密。blog

对于给定的加密值$x^{'}$, 咱们设$x$为真实地理坐标get

$x_1 = x^{'}$ 为真实地理坐标的一个邻近点。(δ很小)io

根据上面的假设:class

x - x_1 = f(x) - f(x_1)

x = x_1 + f(x) - f(x_1)

  = x^{'} + x^{'} - f(x^{'})

以上的式子给出了x的一个估计值。

咱们能够重复上面的过程。

$x_2 = 2x^{'} - f(x^{'})$ 重复上面的过程

x - x_2 = f(x) - f(x_2)

x = x_2 + f(x) - f(x_2)

  = x_2 + x^{'} - f(x_2)
 
  = 3x^{'} - f(x^{'}) - f(2x^{'} - f(x^{'}))

重复这个过程当$f(x)$$x^{'}$的差值小于要求的偏差时,即认为解密成功。

参考文献:

  1. 关于gcj02与dbII09的反向算法即地理坐标的不可加密性
相关文章
相关标签/搜索