使用微信的JSDK方法来获取定位的经纬度,本地测试方法总结

1. 开启D:\soft\natapp的应用

2. 在项目的文件夹F:\city_cloud\zhoushan\zhoushan-wx-public-server\weixin中打开cmd ,输入puer -p 80

3. 在代理的平台打开链接 

http://xiaxiaoxian.natapp1.cc
/* 前端自己合成签名的要素 */
/**
 * 保存token
 */
 var accessToken = '20__Nse8EZXQ7SI1BU6oPxnH2Fmmkx_Eh4KRvDMeepSZmUzeTCGZM9yzP5HHRDgqQ4IRxqqa6pcB1mayc74Fb4MemMNLiDjlLEnUw20WAOCiHKhn0hdGd1XoWibH_LEoZHQVckXPHW6B21un9-dCMTcADARBI'
/**
 * 用token生成的ticket
 */
 var ticket = 'LIKLckvwlJT9cWIhEQTwfAdmtjvZts3UFpWuLYuM72WQ64U_EFQO7NuapmW53LrYWdtEAVQZ02I6Aj0TDc221Q';
/**
 * 随机生成字符串
 */
 var createNonceStr = (function() {
   return Math.random().toString(36).substr(2, 16);
 })();
/**
 * 生成时间戳
 */
 var createTimeStamp = (function() {
   return parseInt(new Date().getTime() / 1000) + '';
 })();
/**
 * 生成签名
 */
function calcSignature(ticket, noncestr, ts, url) {
   var str = 'jsapi_ticket=' + ticket + '&noncestr=' + noncestr + '&timestamp='+ ts +'&url=' + url;
   console.log(str);
   let shaObj = sha1(str);
   return shaObj;
 }
var signature = calcSignature(ticket, createNonceStr, createTimeStamp, location.href.split('#')[0]);
/************************************
 * 使用微信的JSDK的定位方法获取经纬度 *
 ************************************/
getUrl(function(url){
    url += '/snow6/do/weixinmanager/weixinaction';
    // url = 'http://218.205.125.158:7080/snow6/do/weixinmanager/weixinaction';
    var data1 = {
        method: 'getWeChatSignature',
        url: location.href.split('#')[0]
    };
    // console.log(JSON.stringify(data1));
    getCgData(url, data1, function (res) {
        // console.log(res);
        // alert(JSON.stringify(res));
        wx.config({
            debug: false,
            appId: 'wxc42e74e6f3177fd3', 
            // appId: 'wxd0151e2011337f8c',
            timestamp: res.data.timestamp,
            nonceStr: res.data.noncestr,
            signature: res.data.sign,
            // timestamp: createTimeStamp,
            // nonceStr: createNonceStr,
            // signature: signature,
            jsApiList: [
                'checkJsApi',
                'getLocation'
            ]
        });

        // 通过ready接口处理成功验证
        wx.ready(function() {
          wx.checkJsApi({ // 判断当前客户端版本是否支持指定JS接口
            jsApiList: [
            'getLocation'
            ],
            success: function (res) {

            }
        });
        });

        wx.ready(function(){
            wx.getLocation({
                type : 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
                success : function(res) {
                    // alert(JSON.stringify(res));
                    currentLng = res.longitude;
                    currentLat= res.latitude;
                    /**
                     * 绘制地图
                     */
                    gaode(res.longitude, res.latitude);
                },
                cancel : function(res) {
                    alert('用户拒绝授权获取地理位置');
                }
            });
        });
        wx.error(function(){
            /**
             * 绘制地图
             */
            gaode(120, 30);
        });
    });
});

/************************************
 * 使用微信的JSDK的定位方法获取经纬度***
 ************************************/
gaode(currentLng, currentLat);
function gaode (currentLng, currentLat) {
    AMap.plugin(['AMap.Geocoder', 'AMap.ToolBar'],function(){//异步加载插件
    /**
    * 地图相关 start
    * */
    var map; // 地图实例化

    /* 初始化地图 */
    initMap(currentLng, currentLat);
    function initMap(lng, lat) {
    map = new AMap.Map('allmap', {
        resizeEnable: true,
        zoom:16,
        center: [lng, lat]
    });
    dragMap(lng, lat);
    }

      /* AMapUI加载地图 */
    function dragMap(lng, lat) {
    AMapUI.loadUI(['misc/PositionPicker'], function(PositionPicker) {
        map = new AMap.Map('allmap', {
            zoom: 16,
            scrollWheel: false,
            center: [lng, lat]
        })
        var positionPicker = new PositionPicker({
            mode: 'dragMap',
            map: map
        });

        positionPicker.on('success', function(positionResult) {
            if (positionResult.info === 'OK') {
                var address = positionResult.address;
                document.getElementById('dqwz').value = address;
                document.getElementById('blr_Dz').innerHTML = address;
            }
        });
        positionPicker.on('fail', function(positionResult) {
            console.log(positionResult);
        });
        positionPicker.start();
    });
}

    /* 输入框选择POI点 */
    pickerInput();
    function pickerInput() {
        AMapUI.loadUI(['misc/PoiPicker'], function(PoiPicker) {
            var poiPicker = new PoiPicker({
                input: 'dqwz'
            });
            //初始化poiPicker
            poiPickerReady(poiPicker);
        });

        function poiPickerReady(poiPicker) {
            window.poiPicker = poiPicker;
            //选取了某个POI
            poiPicker.on('poiPicked', function(poiResult) {
                console.log(poiResult);
                var lng = poiResult.item.location.lng
                var lat = poiResult.item.location.lat
                var address = poiResult.item.district + '' + poiResult.item.address + '' + poiResult.item.name
                console.log(lng, lat, address);
                document.getElementById('dqwz').value = address;
                document.getElementById('blr_Dz').innerHTML = address;
                dragMap(lng, lat);
            });
        }
    }

    // 点击定位当前点
    $('#updatePosition').on('click', function() {
        dragMap(currentLng, currentLat)
    });
});
}

备注:后台一定要配置
使用微信的JSDK方法来获取定位的经纬度,本地测试方法总结