热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块

首先,制作天气模块,需要准备的资料可不少,开始进入正题吧!步骤如下:1、html+css布局2、用微信小程序获取你当前所在的经纬度3、根据地图API接口,将获取的经纬度解析成具体文

首先,制作天气模块,需要准备的资料可不少,开始进入正题吧!

步骤如下:

1、html+css布局

2、用微信小程序获取你当前所在的经纬度

3、根据地图API接口,将获取的经纬度解析成具体文字地址,如 省 – 市 – 县/区 – 镇 – 街道等

4、经过筛选,此处选择 “百度地图”,注册账号,创建API接口链接

5、获取和风天气接口密钥

6、获取常规天气信息(温度,图标,风向,湿度,气压)

7、获取空气质量

8、获取天气对应的图标

《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

一、html+css布局

index.wxml:





{
{weather.basic.location}}・{
{district}}・{
{street}}


{
{weather.now.tmp}}℃
{
{weather.now.cond_txt}}



{
{weahterAir.air_now_city.aqi}}{
{weahterAir.air_now_city.qlty}}

{
{weather.now.wind_dir}}{
{weather.now.wind_sc}}级 湿度{
{weather.now.hum}}% 气压{
{weather.now.pres}}hPa






index.wxss:

.weat {
height: 240rpx;
display: flex;
justify-content: space-between;
align-items: center;
box-shadow: 0px 3px 4px rgba(99, 99, 99, 0.23);
border-radius: 8px;
background: #fff;
}
.location {
color: #acacac;
font-size: 24rpx;
display: flex;
align-items: center;
margin: 22rpx 0;
}
.location image {
width: 21rpx;
height: 24rpx;
margin-left: 30rpx;
margin-right: 10rpx;
}
.temp {
margin-left: 30rpx;
color: #333;
font: 64rpx "微软雅黑";
}
.temp text {
font-size: 30rpx;
}
.humid {
display: flex;
font-size: 26rpx;
font-weight: 300;
color: #acacac;
margin: 22rpx 0;
margin-left: 30rpx;
width: 100%;
}
.label {
padding: 0 9rpx;
height: 30rpx;
font-size: 22rpx;
font-weight: 300;
color: #6abf47;
border: 1px solid #6abf47;
border-radius: 6rpx;
text-align: center;
margin-right: 12rpx;
}
.sun image {
width: 128rpx;
height: 128rpx;
margin-right: 31rpx;
}

二、用微信小程序获取你当前所在的经纬度

index.js:

// 获取当前经纬度
getGPS: function(e) {
const that = this
wx.getLocation({
type: 'wgs84',
success: (res) => {
var latitude = res.latitude // 纬度
var lOngitude= res.longitude // 经度
var speed = res.speed
var accuracy = res.accuracy
}
})
}

三、根据地图API接口,将获取的经纬度解析成具体文字地址,如 省 – 市 – 县/区 – 镇 – 街道等

其中接口拼接需要密钥,注册获取密钥第4点有介绍操作过程。

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

Page({
data:{
city: '', // 省
district: '', // 市区
street: '' // 街道
},
onLoad: function(e) {
this.getCity();
this.getGPS();
},
// 获取当前经纬度
getGPS: function(e) {
......
success: (res) => {
var latitude = res.latitude
var lOngitude= res.longitude
// 将得到经纬度赋值给百度地图函数
that.getCity(latitude, longitude)
}
......
}
//获取城市信息——百度地图,将获取到的经纬度解析成详细的地区名
getCity: function(lat, long) {
// 初始化刷新
wx.showLoading({
title: '加载中...',
icon: 'loading',
duration: 10000
});
var that = this
var url = "https://api.map.baidu.com/reverse_geocoding/v3/";
var latitude = lat; // 纬度
var lOngitude= long; // 经度
var params = {
ak: "", // 百度地图密钥
output: "json",
location: latitude + "," + longitude
}
wx.request({
url: url,
data: params,
success: function(res) {
// 获取到地址数据结束刷新
wx.hideLoading();
// 获取地址
var city = res.data.result.addressComponent.city; // 省
var district = res.data.result.addressComponent.district; // 市区
var street = res.data.result.addressComponent.street; // 街道
that.setData({
city: city,
district: district,
street: street,
})
}
})
},
})

四、注册账号,创建API接口链接

经过筛选此处选择 “百度地图API”,链接:https://lbsyun.baidu.com/

点击开发文档 -> 微信小程序 Javascript API -> 天气查询模块 -> 账号和密钥

《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

 《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

点击右上角“API控制台”,注册成为百度地图开发者。根据提示填写正确的邮箱及手机号完成开发者注册流程。

 《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

点击 应用管理 -> 我的应用 -> 创建应用

《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

名称随便命一个;类型选择 维系小程序; APP ID 填写 微信公众平台注册的账号APPID,注:必须是小程序开发者

 《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

 此时就能获取到百度API的 AK(密钥)了 ,再将相关的字符组成URL接口链接

《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

五、获取和风天气接口密钥

     根据获取解析得到的地址,如:”重庆“ 获取天气接口信息,其中设计图获取天气信息中有 “空气质量” 参数,经过筛选只有 ”和风天气“ 里面有 “空气质量” 参数,因此,想要获取和风天气接口,需要注册得到接口 密钥(KEY),访问地址:https://dev.qweather.com/docs/api/weather/

首先注册账号

《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

 控制台 -> 应用管理 -> 创建应用 -> 选择免费开发板《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

 《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

 《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

 《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

 《微信小程序,怎么制作一个能够获取空气质量、温度、湿度、气压、风向等的天气模块》

 这样就能得到密钥(KEY)啦~

六、获取常规天气信息(温度,图标,风向,湿度,气压)

url:https://free-api.heweather.net/s6/weather

参考文档:https://dev.qweather.com/docs/api/indices/

data:{
weather: '' //天气信息
},
//获取城市信息——百度地图
getCity: function() {
......
wx.request({
......
success: function(res) {
var city = res.data.result.addressComponent.city;
......
var descCity = city.substring(0, city.length - 1);
that.getWeahter(descCity); // 将得到的 地名"重庆",赋值给天气函数
}
})
},
//获取常规天气信息(温度,图标,风向,湿度,气压)——和风天气
getWeahter: function(city) {
var that = this
var url = "https://free-api.heweather.net/s6/weather"
var params = {
location: city,
key: "" // 和风天气密钥
}
wx.request({
url: url,
data: params,
success: function(res) {
that.setData({
weather: res.data.HeWeather6[0]
})
}
})
}

七、获取空气质量

 url:https://free-api.heweather.net/s6/air

参考文档:https://dev.qweather.com/docs/api/air/air-now/

data:{
weahterAir: '' // 空气质量
},
//获取常规天气信息
getWeahter: function(city) {
......
success: function(res) {
......
that.getWeahterAir(city); // 将获取的地区名 "重庆" 赋值给空气质量函数
}
})
}
//获取空气质量——和风天气
getWeahterAir: function(city) {
var that = this
var url = "https://free-api.heweather.net/s6/air"
var params = {
location: city,
key: "" // 和风天气密钥
}
wx.request({
url: url,
data: params,
success: function(res) {
that.setData({
weahterAir: res.data.HeWeather6[0]
})
}
})
}

八、获取天气对应的图标

图标需要先将图标下载下来,然后拼接成对应的字符串,得到对应的图标切换

图标下载地址:https://dev.qweather.com/docs/start/icons/

git clone https://github.com/qwd/WeatherIcon.git

data:{
weather: '', // 天气信息
weatherIconPic: '' //天气图标
},
//获取常规天气信息
getWeahter: function(city) {
......
wx.request({
......
success: function(res) {
var weatherIcOnId= "../../images/index/airIcon/" + res.data.HeWeather6[0].now.cond_code + ".png";
that.setData({
weather: res.data.HeWeather6[0],
//天气图标
weatherIconPic: weatherIconId
})
}
})
},
//获取天气对应图标
getWeahterIcon(weather) {
switch (weather) {
case "weatherIconText":
return weatherIconId;
}
}

    希望我的愚见能够帮助你哦~,若有不足之处,还望指出,你们有更好的解决方法,欢迎大家在评论区下方留言支持,大家一起相互学习参考呀~


推荐阅读
  • 最近学习了数据挖掘常用的两种算法:FP-Growth和K-Means。现在把我的学习结果分享给大家。以下是本文的目录,大家可以根据需要跳过一些章节:1.FP-Grow ... [详细]
  • 文章目录1.解释一下GBDT算法的过程1.1Boosting思想1.2GBDT原来是这么回事2.梯度提升和梯度下降的区别和联系是什么?3.GBDT的优点和局限性有哪 ... [详细]
  • ForesightNews整理了ETHDenver2023日程及其周边活动供读者参考。 整理: ... [详细]
  • 微信小程序中如何获取当前位置经纬度以及地图显示
    小编给大家分享一下微信小程序中如何获取当前位置经纬度以及地图显示,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅 ... [详细]
  • 2019 年 Firebase 峰会上发布的新功能
    作者FrancisMa,HeadofProductFirebase的使命是帮助移动开发者和Web开发者迈向成功,但考虑到Firebase每个月有超过200万个活跃的应 ... [详细]
  • 1、背景-在项目的实施过程中,由于有dev环境和pro环境,这时会有两个redis集群,但是部分数据从甲方的三方数据库中获取存入生产环境的redis集群中,为了方便测试和数据校验, ... [详细]
  • 从分布式数据库选型的第一件事谈起
    本文很长,谨慎阅读现在在我们的面前摆着太多的分布式数据库可以让我们选择,那么如果我想先让 ... [详细]
  • 深度强化学习Policy Gradient基本实现
    全文共2543个字,2张图,预计阅读时间15分钟。基于值的强化学习算法的基本思想是根据当前的状态,计算采取每个动作的价值,然 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • idea Terminal配置cmder(增加nodejs,git配置,jdk本地环境)
    下载安装nodejs,git,cmder(绿色版直接解压)配置nodejs环境配置缓存npmconfigsetcacheE:\JetBrains\nodejs\node_c ... [详细]
  • 这篇文章主要讲解了“GradeBook类怎么定义”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Grad ... [详细]
  • TLB 缓存延迟刷新漏洞 CVE201818281 解析 ... [详细]
  • mysql join 算法_【MySQL】之join算法详解
    在阿里巴巴的java开发手册有这么一条强制规定:超过三个表禁止join,须要join的字段,数据类型保持绝对一致,多表关联查 ... [详细]
  • AI算法工程师从入门到上瘾
    设定一个非常清晰的目标清晰的目标就比如说你要做NLP,你要知道NLP的应用有智能问答,机器翻译,搜索引擎等等。然后如果你要做智能问答你要知道现在最发达的技术是深度学习,使用的算法有 ... [详细]
author-avatar
vhjkg
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有