zoukankan      html  css  js  c++  java
  • 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的反向算法即地理坐标的不可加密性
  • 相关阅读:
    咨询
    xcode技巧
    礼仪
    asi 网络框架
    iOS 开发问题 书籍 价值 改名 创业大赛app
    PS,UI,美工
    运营推广
    多线程 并发 文章
    手机技巧 文章
    javaScript 类文章
  • 原文地址:https://www.cnblogs.com/hao-ming/p/6702442.html
Copyright © 2011-2022 走看看