获得商户POI(loglat)-大众点评
2013-12-13 12:17:09
大众点评用到的地图是图吧地图,商户的经纬度坐标是被加密过后放在页面中的
- 找到加密的经纬度
- 用ie打开大众商户的页面,右击查看源代码
- 翻到页面的最下方找到POI
- 获取这个字段放入自己编写的解码js中,解析之后获得经纬度
- 有3个文件比较重要,是层层调用的关系,最重要的文件是mapbar.min这个文件
- mapbar这个文件中一下function依次调用
initialize->init->checkPOI->decode
其中decode进行解密工作
解密的key:
var options={ settings:{add:10,center:{lat:34.957995,log:107.050781},cha:36,digi:16,plus:7}}
附:解密函数
var options={ settings:{add:10,center:{lat:34.957995,log:107.050781},cha:36,digi:16,plus:7}} function decode() { //加密后的文字 var b=encodedtext.value, //解密时用的key a=options, d = -1, c = 0, e = "", f = b.length, g = b.charCodeAt(f - 1), i, b = b.substring(0, f - 1); f--; for (var j = 0; j < f; j++) { i = parseInt(b.charAt(j), a.settings.cha) - a.settings.add; i >= a.settings.add && (i = i - a.settings.plus); e = e + i.toString(a.settings.cha); if (i > c) { d = j; c = i } } e = e.replace(/-1/g, "-"); b = parseInt(e.substring(0, d), a.settings.digi); a = parseInt(e.substring(d + 1), a.settings.digi); g = (b + a - parseInt(g)) / 2; a = (a - g) / 1E5; lat.value=a; log.value=g / 1E5; /* return{ lat:a, log:g / 1E5} */ }