获得商户POI(loglat)-大众点评

获得商户POI(loglat)-大众点评

2013-12-13 12:17:09

大众点评用到的地图是图吧地图,商户的经纬度坐标是被加密过后放在页面中的

  1. 找到加密的经纬度
    1. 用ie打开大众商户的页面,右击查看源代码
    2. 翻到页面的最下方找到POI

    3. 获取这个字段放入自己编写的解码js中,解析之后获得经纬度
  1. 3个文件比较重要,是层层调用的关系,最重要的文件是mapbar.min这个文件

    1. 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}

*/

 

 

}

 

 

 

 

 

posted on 2013-12-13 12:24  百草  阅读(2200)  评论(0编辑  收藏  举报

导航