微信小程序获取经纬度所在城市

小程序的wx.getLocation()获得是经纬度并不包含地名,所以要通过经纬度用相应的地图转换出地名(本文使用的是百度地图)

// 获取坐标

onLoad: function (options) {
    wx.getLocation({
      type: 'gcj02', //wgs84/gcj02
      gltitude: true,
      isHighAccuracy: true,
      success: function (res) {
        console.log(res);
        console.log('纬度' + res.latitude);
        console.log('经度' + res.longitude);
      },
    })
 
    console.log('111222333sss');
    let _this = this;
    let l=_this.data.latitude;
    console.log(l);
    
  },

// 获取所在城市

lodeCity: function (longitude, latitude) {
      var me = this;
      wx.request({
          url: 'https://api.map.baidu.com/reverse_geocoding/v3/?ak=获得的AK&location=' + latitude + ',' + longitude + '&output=json',
          data: {},
          header: {
            'Content-Type': 'application/json'
          },
          success: function (res) {
              if (res && res.data) {
                console.log(res.data)
                console.log(res.data.result.addressComponent.city)
                var city = res.data.result.addressComponent.city;
                console.log('res...................');
                me.setData({
                  city: city.indexOf('市') > -1 ? city.substr(0, city.indexOf('市')) :city
                });
                console.log(city);
              }else{
                me.setData({
                  city: '获取失败'
                });
              }
          }
      })
  },

 

 

 1.2  百度地图的准备工作

    1.在使用百度地图API之前,首先要获得百度地图的密钥ak,ak由百度地图方生成;

    2.打开百度地图开放平台,导航栏处选择 “开发文档” > “微信小程序JavaScript API”,在“入门指南”处有详细介绍怎么生成密钥ak,本文不再介绍。

      参考文档:http://lbsyun.baidu.com/index.php?title=wxjsapi/guide/key

    3.复制生成好的ak,把ak粘贴到小程序中。其实,百度地图有提供小程序使用的地图api的压缩包,但是出于小程序发布时对大小的限制,我选择了使用链接。

      百度地图线上转换链接地址:https://api.map.baidu.com/geocoder/v2/?ak=获得的AK&location=' + latitude + ',' + longitude + '&output=json'

    4.使用小程序的账号登录微信公众平台(https://mp.weixin.qq.com/),在“设置” 中选择 “开发设置”,把百度地图api的url添加到request合法域名中。

     注意:百度地图提供的有关于小程序API的下载包,不想使用链接地址的可以使用下载包,出于小程序发布时对大小的限制,本文使用的是链接地址未使用下载包。

 

这个开发设置我是在“开发”--“开发管理”找到的

5.此时准备工作完成,便可以直接在小程序中根据经纬度转换出相应的地名了

 

 

 

最后:遇到API报"APP 服务被禁用":

将请求地址 https://api.map.baidu.com/geocoder/v2/

换成

https://api.map.baidu.com/reverse_geocoding/v3/

 

 

 

参考链接:https://www.cnblogs.com/liuyuanfang/p/9748074.html

解决百度地图API报"APP 服务被禁用"的参考链接:https://blog.csdn.net/weixin_42729938/article/details/116857796

posted @   宅女二二  阅读(1260)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示