微信小程序根据经纬度请求本地天气接口

本文介绍如何在微信小程序中利用用户位置的经纬度信息调用接口,获取并展示本地实时天气情况,实现精准的天气查询服务。

微信小程序根据经纬度请求本地天气接口

onLoad: function (options) {
    // 获取天气
    wx.getLocation({			//获取经纬度
      success: ({ latitude, longitude }) => {
        wx.request({			//发起请求
          url: 'http://www.test.com/wx/interface/setup/weather.php',	//本地的天气接口地址
          data: {				//发送给后台的数据		
            x: latitude,
            y: longitude
          },
          header: {				//请求头
            "Content-Type": "application/x-www-form-urlencoded"
          },
           method: "GET",		//提交方式GET/POST
          success: (res) => {		//成功后返回值			
            console.log(res.data)
            let weather = res.data.data	//赋值给weather
            console.log(weather)
            this.setData(			//发送到.wxml
            { weather }
	        )
	          },
	        })
	      }
	    })
	}
微信小程序中可以通过调用微信的 `wx.getLocation` 方法获取当前位置的经纬度信息。获取经纬度之后,可以利用腾讯地图提供的 `reverseGeocoder` 接口进行逆地理编码,从而获取详细的地址信息,包括省市区等。 首先,需要申请腾讯位置服务的开发者密钥(key),并确保该密钥具有 WebService API 的访问权限。接着,在小程序管理后台设置服务器域名,将 `https://apis.map.qq.com` 添加到 request 合法域名列表中。 在小程序中引入腾讯地图的 JavaScript SDK,并在页面加载时调用 `wx.getLocation` 获取用户的当前位置。获取成功后,使用获取到的经纬度调用 `reverseGeocoder` 接口: ```javascript // 获取当前位置经纬度 wx.getLocation({ type: 'wgs84', success: function (res) { // 发送请求通过经纬度反查地址信息 var getAddressUrl = "https://apis.map.qq.com/ws/geocoder/v1/?location=" + res.latitude + "," + res.longitude + "&key=你的key值&get_poi=1"; // common.Request(getAddressUrl, "get", "", function (ops) { // // 处理返回结果 // }) } }); ``` 同时,在页面的 `onLoad` 生命周期内实例化腾讯地图 API 核心类,并调用 `reverseGeocoder` 方法来获取详细的地址信息: ```javascript var QQMapWX = require('../new-order-submit/address/qqmap-wx-jssdk.js'); var qqmapsdk; Page({ data: {}, onLoad: function () { // 实例化API核心类 qqmapsdk = new QQMapWX({ key: '你的key' }); // 调用逆地理编码 qqmapsdk.reverseGeocoder({ location: { latitude: res.latitude, longitude: res.longitude }, success: function (res) { // 获取定位城市 if (res.result) { // 显示定位信息 _this.setData({ // 设置页面数据 }); } }, fail: function (res) { // 错误处理 } }); } }); ``` 此外,还可以使用 `uni.chooseLocation` 方法让用户选择位置,并通过 `reverseGeocoder` 接口获取省市区信息: ```javascript getLocation() { var _this = this; uni.chooseLocation({ keyword: true, success: (res) => { qqMapsdk.reverseGeocoder({ location: { latitude: res.latitude, longitude: res.longitude }, success: (elem) => { const { result: { address_component: { province, city, district } } } = elem; // 省市区信息 } }); } }); } ``` 以上代码展示了如何在微信小程序获取基于经纬度的具体位置信息[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值