gcj_02和wgs84地理坐標系的相互轉換原理


百度Place API 的一點解釋

百度的Place API 返回值的坐標系統是百度經緯度坐標系統

請求參數中的coord_type控制的是請求參數中的bounds或者location的坐標系統

gcj_02 轉換為wgs84的原理

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

因為:

  1. 地理坐標是連續的(空間的本質)

  2. 加密后的地理坐標是連續的(地圖的本質)

  3. 加密函數是連續的(地圖的本質)

  4. 如果假設加密函數是$f(x)$
    我們還可以直觀地知道,
    對於鄰近的兩個地理坐標x1,x2

f(x1) - f(x2) \approx x1 - x2

f(x) - x = \delta

$\delta$的值應該是無規律的,小的。
道理很簡單,因為加密后的地圖,仍然要是可用的地圖。

  1. 地理坐標是不精確地,允許誤差(測量誤差,數字計算機的精度)
  2. GPS的精度大概是百萬分之一度[1]

基於此,假設加密函數$f(x)$已知,我們可以用數值的方法來解密。

對於給定的加密值$x^{'}$, 我們設$x$為真實地理坐標

$x_1 = x^{'}$ 為真實地理坐標的一個鄰近點。(δ很小)

根據上面的假設:


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的反向算法即地理坐標的不可加密性


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM