使用者: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避免了偏移距離受經緯干擾較大的問題。