灵图编码由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; |
联系客服