百度Place API 的一點解釋
百度的Place API 返回值的坐標系統是百度經緯度坐標系統
請求參數中的coord_type控制的是請求參數中的bounds或者location的坐標系統
gcj_02 轉換為wgs84的原理
地理坐標的加密存在局限性。
因為:
-
地理坐標是連續的(空間的本質)
-
加密后的地理坐標是連續的(地圖的本質)
-
加密函數是連續的(地圖的本質)
-
如果假設加密函數是
$f(x)$
我們還可以直觀地知道,
對於鄰近的兩個地理坐標x1
,x2
f(x1) - f(x2) \approx x1 - x2
f(x) - x = \delta
$\delta$
的值應該是無規律的,小的。
道理很簡單,因為加密后的地圖,仍然要是可用的地圖。
- 地理坐標是不精確地,允許誤差(測量誤差,數字計算機的精度)
- 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^{'}$
的差值小於要求的誤差時,即認為解密成功。