天天看点

地图网站MapBar地理位置标记ID转换为经纬度的Javascript解密算法

地图网站 MapBar 使用的地理位置标记不是常用的经纬度表示法,而是用特殊的算法并使用许可码加密的。

下面的js程序是直接从mapbarapi.js中提取出来,适用于 Mapbar Maplet Engine  Date: 2009-4-20  Time: 9:45:41。

var strLicenseKey = 8890; // 该数值每个网站可能不一样。

var pu = {};

var c75=2;

function JM(xT) {var pk = -1;var fE = 0;var ub = "";var fH = "";if (xT != null && parseInt(xT.charAt(0), 36) >= 33) {fH = xT.charAt(0);xT = xT.substring(1);}for (var i = 0; i < xT.length - (c75 ? 1 : 0); i++) {var n8 = parseInt(xT.charAt(i), 36) - 10;if (n8 >= 17) {n8 = n8 - 7;}ub += n8.toString(36);if (n8 > fE) {pk = i;fE = n8;}}var n9 = parseInt(ub.substring(0, pk), 16);var n0 = parseInt(ub.substring(pk + 1), 16);if ("X" == fH) {n9 = - n9;}if ("Y" == fH) {n0 = - n0;}var v6 = new Array;v6[0] = (n9 + n0 - parseInt(strLicenseKey)) / 2;v6[1] = (n0 - v6[0]) / 100000;v6[0] /= 100000;if (v6[0] > 180) {v6[0] -= 360;}pu[xT] = v6;return v6;}

// 解密实例

var pos = JM('IJJCACVUAEBHTJ');

alert(pos[0] + "," + pos[1]);

继续阅读