第八章:在小程序里查询天气(下)

本文介绍了在微信小程序中实现天气查询功能的下半部分,包括如何获取当前位置天气和根据地图获取天气信息。通过wx.getLocation获取用户位置,结合腾讯地图API解析经纬度获取城市信息,再利用心知天气API获取天气数据。此外,还讲解了如何在地图组件上创建标记点,并在用户点击时切换到天气详情页。
摘要由CSDN通过智能技术生成

作者:知晓云 - 小程序开发快人一步
来源:知晓课堂

在上一节,我们已经简单地完成一个天气查询小程序的静态页面,现在,我们就来为它加上逻辑代码。

获取当前位置天气

想象一下,当小程序加载,默认进入天气详情页面,此时页面初始化时应该做哪些工作呢?

初始化逻辑分3步走,具体如下:

  1. 首先获取当前地理位置信息,取得经纬度。

  2. 调用腾讯地理位置逆解析服务,获取当前位置信息。

  3. 调用心知天气 API,获取当前城市天气。

首先我们需要获取当前地理位置信息。小程序提供了 wx.getLocation API,可以让我们有能力获取到当前使用者的地理位置信息。

wx.getLocation 使用方法如下:

wx.getLocation({

   success: function (res) {
    // success 属性是获取成功回调函数
    console.log(res)
    that.setData({
   
     hasLocation: true,
     location: formatLocation(res.longitude, res.latitude)
    })
   }
  })

我解释一下上述语句:我们给 wx.getLocation 函数传递了一个对象,对象中有 success 属性,该属性为一个 Function 类型,用于绑定获取地理位置成功事件的回调,在这个回调事件中,我们可以拿到一个 res 对象,res 对象包含 longitude 和 latitude,分别是经度、纬度。

接下来我们要通过经纬度获取城市信息,这里我们使用地理位置逆解析服务,使用前需要在腾讯地图注册,申请 API,然后请求 http://apis.map.qq.com/ws/geocoder/v1/?location=,取得当前城市信息。

发起请求的代码如下:

wx.request({
   
   url: 'http://apis.map.qq.com/ws/geocoder/v1/',
   data: {
   
    location: '39.984154,116.307490'
   },
   success: function(r
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值