浅析微信小程序定位和位置的相关知识

一、腾讯位置服务注册及获取密钥

1、注册腾讯位置服务:可以用 qq 号登陆注册,https://lbs.qq.com/recent_news.html

2、获取密钥

3、添加 key

  注意:一定要勾选上 WebServiceAPI,否则会出问题。

  不勾选上的话,会报错:{status: 199, message: "此key未开启WebserviceAPI功能,您可登录lbs.qq.com,进入控制台key管理界面,找到此key并设置启用WebserviceAPI"}

4、引入 sdk 压缩包

// 引入SDK核心
var QQMapWX = require('../../libs/qqmap-wx-jssdk.min')
//申请密钥地
var qqmap = new QQMapWX({ key: '申请的秘钥'});
wx.getLocation({
    success: function(res) {
    //用腾讯地图的api,根据经纬度定位当前位置信息
      qqmap.reverseGeocoder({
         location: {
            latitude: res.latitude,  //回调的纬度
            longitude: res.longitude //回调的经度
         },
         //回调成功显示位置的详细数据
            success:(res)=> {
              consle.log(res)
            },
             //回调失败  (调用成功之后这个可以不需要 ,回调失败会有报错信息方便调试)
            fail: function (res) {
              console.log(res);
            },
           //成功失败都会执行
            complete: function (res) {
               consle.log(res)
          }
      })
   },
})

  腾讯位置服务相关文档:https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/methodReverseGeocoder

二、微信小程序获取定位、通过地点文本获取经纬度进行导航

1、全局配置

  requiredPrivateInfos:相关文档 - https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#requiredPrivateInfos

        "permission": {
          "scope.userLocation": {
            "desc": "你的位置信息将用于小程序位置接口的效果展示"
          }
        },
        "requiredPrivateInfos": [
          "getLocation"
        ],

  申明需要使用的地理位置相关接口,类型为数组。目前支持以下项目:

getFuzzyLocation: 获取模糊地理位置
getLocation: 获取精确地理位置
onLocationChange: 监听试试地理位置变化事件
startLocationUpdate: 接收位置消息(前台)
startLocationUpdateBackground: 接收位置消息(前后台)
chooseLocation: 打开地图选择位置
choosePoi: 打开 POI 列表选择位置
chooseAddress: 获取用户地址信息

  位置服务相关接口具体使用及介绍,见文档:https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.stopLocationUpdate.html

  注:若使用以上接口,均需在小程序管理后台,「开发」-「开发管理」-「接口设置」中自助开通该接口权限。

2、接入腾讯位置服务sdk

  见上文,或详见文档:https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview

3、权限设置

  微信公众平台 - 开发 - 开发管理 - 接口设置,去申请权限

4、地理位置方法

(1)wx.getLocation(需要获取权限),功能:获取当前的地理位置

  点击会弹起授权窗口,允许的话,就会直接获取地址;拒绝状态的话,需要自己写个弹窗,告诉用户去打开获取位置授权

(2)wx.chooseLocation (需要权限),功能:打开地图选择位置

(3)wx.openLocation,功能:使用微信内置地图查看位置

(4)wx.choosePoi,功能:打开 POI 列表选择位置,支持模糊定位(精确到市)和精确定位混选

 5、腾讯位置服务

(1)search:文档 https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/methodSearch

  功能:地点搜索,搜索周边poi,比如:“酒店” “餐饮” “娱乐” “学校” 等等。比如像这样

(2)getSuggestion:文档 https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/methodGetsuggestion

  功能: 用于获取输入关键字的补完与提示,帮助用户快速输入。就像这样返回一些关联地址给用户快速选择

(3)reverseGeocoder(可配合wx.getLocation做定位解析)

  功能: 本接口提供由坐标到坐标所在位置的文字描述的转换,输入坐标返回地理位置信息和附近poi列表

  拿到定位的经纬度做定位解析处理,拿到当前位置

(4)geocoder

  功能:提供由地址描述到所述位置坐标的转换,与逆地址解析reverseGeocoder()的过程正好相反

  通过传入名称去查询经纬度从而进行导航处理

(5)其他接口,详见该文档,有很多:https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/qqMapwx

posted @ 2018-03-06 22:13  古兰精  阅读(1540)  评论(0编辑  收藏  举报