在微信小程序中打开地图选择位置功能

前言

说真的,这是我第一次接触移动端的地图模块,一开始我真的一头雾水,感觉这个很难,但是通过不断的探索,在慢慢摸索中,一点一点搞懂了很多东西,还是很开心的,就想把我的经验分享给大家。希望能帮助到你们~

首先查看效果

需要用户授权,才能拿到当前位置。如果用户拒绝后,再次点击选择位置,将会提示重新授权,引导用户开启权限
需要用户授权,才能拿到当前位置

如果用户拒绝后,再次点击选择位置
将会提示重新授权,引导用户开启权限
授权成功后获取到位置的名字,显示出来,这里用wx.getLocation只能拿到经纬度,我这里是使用了腾讯位置服务的API拿到位置名称的,先上图授权成功后获取到位置的名字,显示出来
搜索位置
选择位置

选好了起点和终点

一、准备工作

1-1. 下载小程序地理定位qqmap-wx-jssdk.js

在这里插入图片描述

1-2. 放在项目中的utils文件夹下面;

在这里插入图片描述

1-3. 在utils 文件夹中,创建location-util.js文件

getLocation()方法是获取用户地理位置的,需要用户授权
chooseLocation()方法是打开微信内置地图,供用户选择位置的

location-util.js

var util = require('util.js');

function getLocation() {
   
  return new Promise(function (resolve, reject) {
   
    wx.getSetting({
   
      success: (res) => {
   
        //console.log(JSON.stringify(res))
        // res.authSetting['scope.userLocation'] == undefined    表示 初始化进入该页面
        // res.authSetting['scope.userLocation'] == false    表示 非初始化进入该页面,且未授权
        // res.authSetting['scope.userLocation'] == true    表示 地理位置授权
        if (res.authSetting['scope.userLocation'] === false) {
   
          wx.showModal({
   
            title: '请求授权当前位置',
            content: '需要获取您的地理位置,请确认授权',
            success: function (res) {
   
              if (res.cancel) {
   
                wx.showToast({
   
                  title: '拒绝授权',
                  icon: 'none',
                  duration: 1000
                });
                getCurrentLocation(resolve, reject);
              } else if (res.confirm) {
   
                wx.openSetting({
   
                  success: function (dataAu) {
   
                    if (dataAu.authSetting["scope.userLocation"] == true) {
   
                      wx.showToast(
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值