• 微信小程序开发学习--获取位置信息


    1、微信小程序地图展示位置信息

    获取用户的位置信息,最开始使用了微信小程序提供的getlocation来获取用户的定位,能够得到用户的经纬度信息,(注:getloaction需要用户授权scope.userLocation)结合map组件能够得到用户的详细定位,代码如下:

    <map id="map" longitude="{{location.longitude}}" latitude="{{location.latitude}}" scale="14" bindcontroltap="controltap" bindmarkertap="markertap" polyline="{{polyline}}" bindregionchange="regionchange" show-location style=" 100%; height: 100vh;"></map>
    <button class='login' bindtap='loginView'>登录/注册</button>
     onLoad: function () {
          wx.getLocation({
            success: res=> {
              console.log(res);
              this.setData({
                location: res,
              })
              // console.log(app.globalData.location);
            },
          })
    }

    实现效果如下图:

    微信小程序也支持在地图上选点,获取定位信息(wx.chooseLocation)和使用微信内置地图查看位置(wx.openLocation)

    2、结合百度地图获取位置信息

    微信小程序的接口,只能得到经纬度,但有时候我们需要得到具体的城市或者区域信息,这就需要借助百度地图了。

    •  第一步:先到百度开放平台http://lbsyun.baidu.com申请ak(链接地址为:http://lbsyun.baidu.com/index.php?title=wxjsapi/guide/key
    •  第二步:在服务器配置中添加百度地图的服务器(https://api.baidu.com)
    • 第三步:下载百度地图的api ,链接:http://download.csdn.net/detail/michael_ouyang/9754015
    • 第四步:引入JS模块,将下载的js放到工程目录下
    • 第五步:在所需的js文件内导入js
      var bmap = require('../../libs/bmap-wx/bmap-wx.js'); 
    • 第六步:编辑代码 ,此处我获得的是城市信息,可以log出信息,选择自己要显示的信息,用setData的方式放入数据中进行展示即可
       var BMap = new bmap.BMapWX({   
              ak: that.data.ak,
          });   
              console.log(BMap)    
          var fail = function(data) {   
              console.log(data);  
          };   
          var success = function(data) {   
              //返回数据内,已经包含经纬度  
              console.log(data);  
              //使用wxMarkerData获取数据  
              //  = data.wxMarkerData;  
      wxMarkerData=data.originalData.result.addressComponent.city
              //把所有数据放在初始化data内  
              console.log(wxMarkerData)
              that.setData({   
                  // markers: wxMarkerData,
                  // latitude: wxMarkerData[0].latitude,  
                  // longitude: wxMarkerData[0].longitude,  
                  address: wxMarkerData 
              });  
          }   
          // 发起regeocoding检索请求   
          BMap.regeocoding({   
              fail: fail,   
              success: success  
          });      
        },
  • 相关阅读:
    RocketMQ同一个消费者唯一Topic多个tag踩坑经历
    1.写一个字符串反转函数.
    1.什么是灰度发布?
    简单比较 @EnableEurekaClient 和 @EnableDiscoveryClient 两个注解
    字符串拼接出现null的问题
    webSocket无法注入bean问题解决方案
    数据库中的时间类型需要指定长度吗?
    SQL语句的优化
    NoClassDefFoundError
    1.代码规范之 if 语句编写
  • 原文地址:https://www.cnblogs.com/JiSight/p/7729085.html
Copyright © 2020-2023  润新知