zoukankan      html  css  js  c++  java
  • 微信定位

     $(function(){
        
    wx.config({
         debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        appId: '', // 必填,公众号的唯一标识
        timestamp: '', // 必填,生成签名的时间戳
        nonceStr: '', // 必填,生成签名的随机串
        signature: '',// 必填,签名
         jsApiList: [
            'getLocation',    //获取地理位置
            'onMenuShareAppMessage',    //分享给朋友
            'onMenuShareTimeline'    //分享到朋友圈
         ] // 必填,需要使用的JS接口列表
        });
        wx.ready(function(){
            // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
           console.log('请求成功');
        setInterval(function(){
                //请求位置
            wx.getLocation({
            type: 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
            success: function (res) {
                
                 var lat = res.latitude; // 纬度,浮点数,范围为90 ~ -90
                // alert(latitude)
                 var lng = res.longitude; // 经度,浮点数,范围为180 ~ -180。
                // var speed = res.speed; // 速度,以米/每秒计
                 var accuracy = res.accuracy; // 位置精度
                
                //调用当前位置初始化方法
                //  var gpsPoint = GPS.gcj_encrypt(latitude, longitude);
               //  lng= gpsPoint.lon;
               //  lat= gpsPoint.lat;
                 alert(lng+"  "+lat)
          alert(    distance2(lat,lng)+" 米");
            }
            });
        },3000);
    });
    wx.error(function(error){
        console.log('请求失败');
    });
          function distance2(lat,lng){  
            
             var lngarr =new Array(104.061084, 104.062279, 104.060246);
             var latarr =new Array(30.540906, 30.540291,  30.539894);
             var namearr =new Array('阿里巴巴', '青蓉国际4a',  '小俊干');
             var str =new Array();
             var str2 =new Array();
             for(var i=0;i<lngarr.length;i++){
                var goalLat=latarr[i];
               var    goalLng=lngarr[i];
               var mi= distance(lat,lng,goalLat,goalLng)
               str[i]=mi
               str2[i]=mi
             }
             str.sort(function(a,b){
                    return  a-b;
                });
            
                if(str[0]>100){
                    
                    return '不在导览点内';
                }else{
                    for(var i=0;i<str2.length;i++){
                        if(str[0]==str2[i]){
                            return namearr[i]+" ,"+str2[i];
                        }    
                     }
                }
          }
         function distance(lat,lng,goalLat,goalLng){  
             var EARTH_RADIUS = 6378.137;
             if(lat != '' && lng != '' && goalLat != '' && goalLng != ''){
                 var radLat1 = rad(lat);
                 var radLat2 = rad(goalLat);
                 var a = radLat1 - radLat2;
                 var b = rad(lng) - rad(goalLng);
                 var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
                         Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
                 s = s * EARTH_RADIUS;
                 s = Math.round(s * 10000) / 10000;
                 return s*1000;       
             }else{
                // alert(1)
                 return 0;
             }
             function rad(d){
                return d * Math.PI / 180.0;
             }
         }
    });

  • 相关阅读:
    07_Python语法示例(基础语法,文件操作,异常处理)
    练习js——自动化实现12306火车票查询
    【转】app自动化问题点整理
    TouchAction的花式应用——APP九宫格绘制
    【转】web 自动化文件上传不要太简单
    阶段小测试我的作业
    Mac Chrome浏览器取消自动升级
    Mac下安装selenium及Chromedrive驱动
    【转】Jenkins配置Git push后自动构建
    函数使用练习
  • 原文地址:https://www.cnblogs.com/zhouwen2017/p/10412772.html
Copyright © 2011-2022 走看看