小程序获取具体地址(经纬度转换成实际地址)

效果展示

在这里插入图片描述

注意: 因为微信小程序的api只提供了获取经纬度的接口,实际上获取的地址无法分割,所以我们引入第三方的腾讯jdk来完成。

  • 以下是项目目录结构
    在这里插入图片描述
具体步骤
  1. 到腾讯申请一个开发者 key: key地址
  2. 下载qqmap jdk到本地:** 下载地址:js-jdk下载地址**
  3. 将jdk放到本地,并进入调用api即可

注意: 使用 微信开发者工具进行调试的时候注意把 校验域名地址 给关闭,不然可能会报错。

核心代码
  • wxml
<view>
  <view>省:{{province}}</view>
  <view>市: {{city}}</view>
  <view>区: {{county}}</view>
  <view>详细地址:{{addressDetail}} </view>
</view>
<button bindtap="getAddress">获取地址</button>
  • js
const app = getApp()
// 引入SDK核心类
var QQMapWX = require("../utils/qqmap-wx-jssdk.min");
var qqmapsdk;
Page({
  data: {
    province: "",
    city: "",
    county: "",
    addressDetail: "",
    longitude: "", //经度
    latitude: ""  // 纬度
  },
  onLoad: function () {
    // 实例化API核心类
    qqmapsdk = new QQMapWX({
      key: 'KVFBZ-GR2KD-PU344-H7WLB-MFV7Q-YOFFX'
    });

  },
  onShow: function () {

    
  },
  getAddress(){
    this.getJingWeiDu();
  },
  /**
   * 获取经纬度
   */
  getJingWeiDu() {
    let that = this;
    wx.getLocation({
      success(res) {
        console.log(res);
        that.setData({
          longitude: res.longitude,
          latitude: res.latitude
        }, () => {
          that.jingWeiduToDiZhi();
        });

      }
    })
  },
  /**
   * 经纬度转换成地址
   */
  jingWeiduToDiZhi() {
    
    let that = this;
    // 调用接口
    qqmapsdk.reverseGeocoder({
      location: {
        latitude: that.data.latitude,
        longitude: that.data.longitude
      },
      success: function(res){
        console.log("result")
        console.log(res);
        let tempData = res.result.address_component;
        that.setData({
          
          province: tempData.province,
          city: tempData.city,
          county: tempData.district,
          addressDetail: res.result.address
        });
      },
      fail: function(error) {
        console.log("err")
        console.error(error);
      },
      complete: function(res) {
        console.log("complete")
        console.log(res);
      }
    })
  }
})

最后别忘了 在 app.json中配置权限。

  • app.json
{
  "pages": [
    "index/index"
  ],
  "permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于小程序位置接口的效果展示"
    }
  },
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "WeChat",
    "navigationBarTextStyle": "black"
  },
  "style": "v2",
  "sitemapLocation": "sitemap.json"

}
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ITzhongzi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值