薛之谦拍mv幕后花絮:灵图编码

来源:百度文库 编辑:九乡新闻网 时间:2024/05/05 17:39:31
灵图编码转换方法(js实现)!2008年03月14日 星期五 19:12 灵图编码由12位数字组成,表现为:xxxx-xxxx-xxxx.
整个12位编码的
第1位数字,每加1,就向北移动100米左右;每减1,就向南移动100米左右;
第2位数字,每减1,就向南移动100公里;
第3位数字,每减1,就向西移动1公里;
第4位数字,每减1,就向南移动10米;
第5位数字,每减1,就向南移动1公里;
第6位数字,每减1,就向西移动100米;
第7位数字,每减1,就向西移动100公里;
第8位数字,每减1,就向西移动10公里;
第9位数字,每减1,就向西移动10米;
第10位数,每减1,就向南移动1000公里;
第11位数,每减1,就向南移动10公里;
第12位数,每减1,就向西移动1000公里。

转换关系为:
经度:12,7,8,3,6,9 (表示:将灵图编码的第12位对应的数字放在经度的第一位,灵图编码的第7位对应的数字放在第二位,以此类推)
纬度:10,2,11,5,1,4

这样,一个灵图编码可以按上述转换关系转换:
例:2060-4501-5322
经度:201655
纬度:302420
但这还没完,由于中国境内的经度大致范围是(73-134)。所以这里的经度省略了首位数字1。
正确的应该为:
经度:120.1655
纬度: 30.2420

同理:
0063-4501-9322的转换为:
经度: 201659 -> 120.1659
纬度: 302403 -> 30.2403

0074-0201-8332的转换为:
经度:201728 -> 120.1728
纬度:303004 -> 30.3004

经验证,此中的经纬度信息适用于google 地图和灵图地图,但不适用于google的卫星地图。因为此经纬度与卫星地图上的经纬度有一定的差距(大概有几条街大的差距)。

以下用javascript语言来实现此转换方法:
//格式xxxx-xxxx-xxxx
function ltToDituGps(code){
    //x代表纬度 , y代表经度
    code = code.replace('-','').replace('-','');
    var yy = '' + code.charAt(11) + code.charAt(6) + code.charAt(7) + code.charAt(2) + code.charAt(5)+ code.charAt(8);
    var y = parseInt(yy)/10000;
    var xx = '' + code.charAt(9) + code.charAt(1) + code.charAt(10) + code.charAt(4) + code.charAt(0)+ code.charAt(3);
    var x = parseInt(xx)/10000;
    if(y < 40){
        y+=100;
    }

    var xy = {x:x,y:y};
    return xy;