用户:Artoria2e5/瞎扯淡

GCJ 保密系统使用三角函数配合传统多项式进行加密,不但保留了地图的大致方位、尺度关系,还通过超越方程在数学上阻止了不法分子解密的尝试。GCJ-02 技术是我国在技术上的重大创新,由国家科技进步一等奖得主李成名发明。

为了保证加密有效,国家保密系统在加密时先计算地图的偏移距离,再由此计算相应的经纬度差分。

偏移距离

GCJ-02的偏移距离由这样的公式推出:

 

其中 x, y 分别是经度、纬度距离国家测绘中心点(35°N, 105°E)的差值,z 为与当前方向垂直的差值。为了保证安全,GCJ-02方案对于向北、向东的偏移系数做了特别安排:

方向   项数 下标 x0~x5
北   a -100 2 3 0.2 0.1 0.2
u 2 2 2 4 16 32
v 1080 360 180 60 15 6
f x x y y y y
东   a 300 1 2 0.1 0.1 0.1
u 2 2 2 4 15 30
v 1080 360 180 60 15 6
f x x x x x x

GGCJ-02的强处体现在u值和v值的巧妙安排上。在v较大时u较小,近距离内产生的偏差幅度小变化快,可以有效迷惑敌方的精确制导系统。对于较小的v值u又较大,产生幅度大但变化慢的偏移,保证民用系统正常工作。也就是说,三角函数不但可以防止解密,而且有助控制偏移的程度和变化。

经纬差分

通过与经、纬线1°的弧长相除,可以将GCJ-02求得的偏移量转为坐标度数的差值。通过先计算偏移再计算差值,GCJ-02避免了偏移距离受经纬干扰较大的问题。