Applet WeChat - obtém a localização do usuário (latitude e longitude + cidade)

Applet WeChat - obtém a localização do usuário (latitude e longitude + cidade)

1. Metas

Obtenha a cidade do usuário

2. Ideias de implementação

1. Use a função de interface do miniaplicativo WeChat para obter a latitude e longitude da localização do usuário

2. Analisar inversamente a latitude e a longitude em um endereço de texto estruturado

3. Extraia os componentes da estrutura de endereços necessários de acordo com o endereço de texto estruturado, como províncias, cidades, distritos e condados, etc.

3. Etapas de implementação

3.1 Funções de interface usadas

Applet WeChat - função de interface para obter a localização do usuário: wx.getLocation(Object object)

Você também precisa usar a configuração do applet: permission

Serviço de localização Tencent - função de interface de geocodificação reversa (descrição de localização de coordenadas): reverseGeocoder(options:Object)

3.2 Etapas específicas

3.2.1 Criar interface

arquivo wxml

<view class="view1">点击获取用户位置</view>
<view class="view2">用户所在位置的经度:{
   
   {latitude}}</view>
<view class="view2">用户所在位置的纬度:{
   
   {longitude}}</view>
<view class="view2">用户所在城市:{
   
   {city}}</view>

arquivo wxss

.view1 {
  background-color: yellow;
  width: 100%;
  height: 200rpx;
  margin-bottom: 20rpx;
}

.view2 {
  background-color: yellow;
  width: 100%;
  height: 100rpx;
  margin-bottom: 20rpx;
}

arquivo js

// index.js
// 获取应用实例
const app = getApp()

Page({
    
    
  data: {
    
    
    latitude: null,
    longitude: null,
    city: null
  },
  
  onLoad() {
    
    
    
  },
  
})

efeito de interface
insira a descrição da imagem aqui

3.2.2 Obtenha a latitude e longitude da localização do usuário

Escreva a função getLocation que aciona a aquisição da latitude e longitude da localização do usuário, chame a interface wx.getLocation na função, obtenha informações como longitude e latitude e, em seguida, vincule-as à interface front-end.

3.2.2.1 Configurar permissão no arquivo app.json

Quando o usuário usa esta função pela primeira vez, o applet pergunta ao usuário se deseja autorizar o acesso às informações de localização do usuário. Não pergunte novamente depois disso. (Após limpar o cache da ferramenta do desenvolvedor e recompilar o applet, ele perguntará novamente, pois as informações de autorização do usuário anterior foram apagadas)

arquivo app.json

{
    
    
  "pages":[
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window":{
    
    
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "Weixin",
    "navigationBarTextStyle":"black"
  },
  "style": "v2",
  "sitemapLocation": "sitemap.json",

  //新增下面的代码(上面的代码是创建小程序项目后就已经有的)
  "permission": {
    
    
    "scope.userLocation": {
    
    
      "desc": "你的位置信息将用于小程序位置接口的效果展示"
    }
  }
}

3.2.2.2 Chamar a interface wx.getLocation

arquivo wxml

//新增bindtap这个函数,使得用户点击这个view时就能触发获取用户位置的功能
<view class="view1" bindtap="getLocation">点击获取用户位置</view>

arquivo js

// index.js
// 获取应用实例
const app = getApp()

Page({
    
    
  data: {
    
    
    latitude: null,
    longitude: null,
    city: null
  },
  
  onLoad() {
    
    
    
  },
  
  // 新增下面这部分代码
  getLocation() {
    
    
    var that = this;
    wx.getLocation({
    
    
      type: 'wgs84',
      success (res) {
    
    
        const latitude = res.latitude
        const longitude = res.longitude
        const speed = res.speed
        const accuracy = res.accuracy
        console.log(res) //将获取到的经纬度信息输出到控制台以便检查
        that.setData({
    
     //将获取到的经度、纬度数值分别赋值给本地变量
          latitude: res.latitude,
          longitude: res.longitude
        })
      }
     })
  }
})

Efeito

insira a descrição da imagem aquiinsira a descrição da imagem aqui

3.2.3 Obtenha a cidade do usuário

3.2.3.1 Configurações diferentes de applets

Solicite uma chave no serviço de localização da Tencent

Conclua as etapas a seguir de acordo com as instruções em [Getting Started and Usage Restrictions] em Tencent Location Services - WeChat Mini Program Javascript Development Guide .
insira a descrição da imagem aqui
insira a descrição da imagem aqui

Baixe o applet JavaScriptSDK

Basta baixá-lo do site do serviço de localização da Tencent (escolha um dos dois, baixei a v1.2) e salve-o no diretório do projeto do miniaplicativo WeChat.
insira a descrição da imagem aqui

Extraia o pacote compactado baixado para a pasta atual.
insira a descrição da imagem aqui

Configurações de nome de domínio de segurança

Faça login na plataforma pública do applet WeChat , use o appid deste applet (ou o número de teste de sua própria conta WeChat) para fazer login e configure o nome de domínio legal da solicitação no "nome de domínio do servidor": https://apis.map.qq.com.

insira a descrição da imagem aqui

3.2.3.2 Chamada interface reverseGeocoder

arquivo js

// index.js
// 获取应用实例
const app = getApp()

//新增
// 引入SDK核心类,根据自己放的路径来写这个SDK核心类的位置
var QQMapWX = require('../../qqmap-wx-jssdk.js');

//新增
// 实例化API核心类
var qqmapsdk = new QQMapWX({
    
    
  key: '……' // 必填,填自己在腾讯位置服务申请的key
});

Page({
    
    
  data: {
    
    
    latitude: null,
    longitude: null,
    city: null
  },
  
  onLoad() {
    
    
    
  },
  
  getLocation() {
    
    
    var that = this;
    wx.getLocation({
    
    
      type: 'wgs84',
      success (res) {
    
    
        const latitude = res.latitude
        const longitude = res.longitude
        const speed = res.speed
        const accuracy = res.accuracy
        console.log(res)
        that.setData({
    
    
          latitude: res.latitude,
          longitude: res.longitude
        })
        
        //新增
        qqmapsdk.reverseGeocoder({
    
    
          //位置坐标,默认获取当前位置,非必须参数 
          //Object格式
          location: {
    
    
            latitude: res.latitude,
            longitude: res.longitude
          },
          success: function(res) {
    
    //成功后的回调
            console.log(res.result.ad_info.city);
            that.setData({
    
    
              city: res.result.ad_info.city
            })
            },
          fail: function(error) {
    
    
            console.error(error);
          },
          complete: function(res) {
    
    
            console.log(res);
          }
          })
      }
     })
  }
})

Efeito
insira a descrição da imagem aqui

referência

Applet Wechat para obter a localização atual e o nome da cidade

Acho que você gosta

Origin blog.csdn.net/Mocode/article/details/125861585
Recomendado
Clasificación