微信小程序连接百度地图API实现天气查询

  • 一、获取百度地图开放平台天气查询API
  • 二、添加百度天气查询域名
  • 三、微信小程序代码

一、获取百度地图开放平台天气查询API

进入百度地图开放平台.(没有账号的需要先申请一下,获取api不需要收费)

二、添加百度天气查询域名

然后进入微信公众平台

在request合法域名中添加域名 api.map.baidu.com
添加域名完了,接下来是代码

三、微信小程序代码

这里的代码我是从哔哩哔哩上学的,但是因为它的接口是用的天气网的接口是http协议的,现在微信小程序只支持https的,所以我将他的代码改了一下(刚学小程序,可能有很多问题,多多见谅)

// js代码
Page({/*** 页面的初始数据*/data: {city:"",today:{},future:{},pollution:"",},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {this.loadInfo();},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function () {},/*** 生命周期函数--监听页面显示*/onShow: function () {},/*** 生命周期函数--监听页面隐藏*/onHide: function () {},/*** 生命周期函数--监听页面卸载*/onUnload: function () {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function () {},/*** 页面上拉触底事件的处理函数*/onReachBottom: function () {},/*** 用户点击右上角分享*/onShareAppMessage: function () {},loadInfo:function(){var page=this;wx.getLocation({type: 'gcj02',success:function(res) {var latitude = res.latitudevar longitude = res.longitudeconsole.log(latitude, longitude);page.loadCity(latitude, longitude)}})},loadCity: function (latitude, longitude){var page = this;wx.request({url: 'https://api.map.baidu.com/geocoder/v2/?ak=输入你自己的AK&location=' + latitude + ',' + longitude +'&output=json',header:{'Content-Type':'application/json'},success:function(res){var city = res.data.result.addressComponent.city;city=city.replace("市","")page.setData({city:city});page.loadWeather(city);}});},loadWeather: function (city) {var page = this;wx.request({url: 'https://api.map.baidu.com/telematics/v3/weather/?ak=输入你自己的AK&location=' + city + '&output=json',header: {'Content-Type': 'application/json'},success: function (res) {console.info(res);var a = new RegExp("[0-1][0-9]月[0-3][0-9]日","g");var future=res.data.results[0].weather_data;var today = res.data.results[0];var pollution;future[0].date = future[0].date.replace("周一 ", "");future[0].date = future[0].date.replace("周二 ", "");future[0].date = future[0].date.replace("周三 ", "");future[0].date = future[0].date.replace("周四 ", "");future[0].date = future[0].date.replace("周五 ", "");future[0].date = future[0].date.replace("周六 ", "");future[0].date = future[0].date.replace("周日 ", "");future[0].date = future[0].date.replace(a,"");future[0].date = future[0].date.replace(" (实时:", "");future[0].date = future[0].date.replace("℃)", "");if (today.pm25<=35){pollution=" 空气质量优";}else if (today.pm25 > 35 && today.pm25<=75) {pollution = " 空气质量良";}else if (today.pm25 > 75 && today.pm25<=115) {pollution = " 轻度污染";}else if (today.pm25 > 115 && today.pm25<=150) {pollution = " 中度污染";}else if (today.pm25 > 150 && today.pm25<=250) {pollution = " 重度污染";}else if (today.pm25 > 250) {pollution = " 严重污染";}page.setData({today:today,future:future,pollution:pollution});}});}
})


有两处需要修改AK的地方

//wxml<view class="content" mode="widthFix" ><view  class='today'><view  class='info'><view class='temp'>{{future[0].date}}°C</view><view class='weather'>PM25:{{today.pm25}}{{pollution}}</view><view>友情提示:{{today.index[0].des}}</view><view class='city'>{{city}}</view></view></view><view class='future'><view class='future-item'><view>今天</view><view> {{future[0].temperature}}</view><view>{{future[0].weather}}</view><view>{{future[0].wind}} </view></view><view class='future-item'><view>{{future[1].date}}</view><view> {{future[1].temperature}}</view><view>{{future[1].weather}}</view><view>{{future[1].wind}} </view></view><view class='future-item'><view>{{future[2].date}}</view><view> {{future[2].temperature}}</view><view>{{future[2].weather}}</view><view>{{future[2].wind}} </view></view><view class='future-item'><view>{{future[3].date}}</view><view> {{future[3].temperature}}</view><view>{{future[3].weather}}</view><view>{{future[3].wind}} </view> </view></view></view>
// json
{"navigationBarTitleText": "天气预报"
}
// wxss.content{font-family: 微软雅黑,宋体;font-size: 14px;background-size: cover;height:100vh;width: 100vw;background-image: url("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553696593722&di=d447006d38b37385438443163d9860e8&imgtype=0&src=http%3A%2F%2Fp1.gexing.com%2FG1%2FM00%2F75%2FC3%2FrBACE1MvA5ngraHSAAESYDiqWJ8441.jpg");color: #ffffff;}
.info{padding: 5px;background: #ffffff;background: rgba(0, 0, 0, 0.5);box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.5);
}
.today{padding-top: 50rpx;height: 50%;
}
.city{color: white;font-size: 16px;text-align: right;margin-right: 10rpx;margin-top: 30rpx;
}
.temp{font-size: 50px;text-align: center;
}
.weather{text-align: center;}.future{display: flex;flex-direction:row;height: 40%;padding-left: 5rpx;background: #ffffff;background: rgba(247, 238, 238, 0.1); box-shadow: 10px 10px 20px rgba(252, 249, 249, 0.5);text-align: center;padding-top: 10rpx;padding-bottom: 20rpx; }.future-item{min-height: 100%;width: 165rpx;margin-left: 10rpx;margin-right: 10rpx;border: 1px solid rgb(170, 156, 150);border-radius: 10px;padding-top: 10rpx;}.future-item view{margin-top: 10px;}

最后完成应该是:

可以在Console栏中查看API的一些信息:

微信小程序连接百度地图API实现天气查询相关推荐

  1. 微信小程序百度地图API移动选点

    微信小程序百度地图API移动选点 本文首发微信小程序百度地图API移动选点 因为业务需要使用百度地图API,参考一位大佬编写腾讯API的思路和方法,改造成百度地图API移动选点. 思路: wxml前端 ...

  2. 高德地图api调用demo_微信小程序----高德地图API实现的DEMO

    [实例简介] 微信小程序----高德地图API实现的周边,天气,路线规划,地址详情等的DEMO.简单的效果,问一下官方能不能不要乱涨积分,你们涨积分,作者被骂!我真的很失望,再这样,我就不上传资源了! ...

  3. (更新源码)AndroidStudio新手开发:天气app(百度地图api+和风天气api+城市查询+折线展示)

    AndroidStudio新手开发:天气app(百度地图api+和风天气api+城市查询+折线展示) 1.内容简介 2.环境配置 3.导入他人demo 4.AS项目分析 5.天气项目流程 6.数据探寻 ...

  4. 利用百度地图API进行车辆查询并用鼠标拾点获取经纬度

    利用百度地图API查询公交车线路位置信息以及鼠标取点的经纬度 先从官网申请秘钥http://lbsyun.baidu.com/ 2. 如果是用jsp写动态web项目,在jsp页面中引入js库,并且引入 ...

  5. right 微信小程序_微信小程序高德地图API

    本文章介绍微信小程序调用高德地图API的过程,使用高德定位功能做演示. 微信小程序目前支持百度地图.高德地图.腾讯地图.用法可以说是基本完全一样,本文章以高德为例,简单说一下他们的区别,高德地图精度应 ...

  6. 微信小程序---高德地图API

    本文章介绍微信小程序调用高德地图API的过程,使用高德定位功能做演示. 微信小程序目前支持百度地图.高德地图.腾讯地图.用法可以说是基本完全一样,本文章以高德为例,简单说一下他们的区别,高德地图精度应 ...

  7. 高德地图API实现天气查询

    核心: 1.在高德地图注册开发者账号,获取key,取得调用API权限(用于个人学习的话,不用花钱的) 2.查看官方文档和demo,学习使用方法 --通过调用API,高德的服务器会传回一些带有天气数据的 ...

  8. 小程序通过API获取位置信息 微信API 百度地图API

    博客简介 本篇博客介绍如何调用微信API获取经纬度,如何调用百度地图API获取实物位置 微信API获取经纬度信息 百度地图API获取实物位置 微信小程序获取经纬度 微信提供了获取当前设备经纬度的API ...

  9. 微信小程序城市定位(百度地图API)

    概述 微信小程序提供一些API(地址)用于获取当前用户的地理位置等信息,但无论是wx.getLocation,还是wx.chooseLocation均没有单独的字段表示国家与城市信息,仅有经纬度信息. ...

最新文章

  1. 开发步骤 采用restful接口开发的开发步骤
  2. JS:2.1,流程控制(if,switch)高级
  3. php面向对象项目,PHP的面向对象编程:开发大型PHP项目的方法(一)
  4. 为什么我们要使用HTTP Strict Transport Security?
  5. 大数据之-入门_大数据发展前景---大数据之hadoop工作笔记0005
  6. 杨辉三角(二项式定理)组合数 【noip 2011/2016 d2t1】
  7. C++primer笔记之顺序容器
  8. 拓端tecdat|R语言拟合扩展的Rasch模型分析试题质量
  9. postgis 栅格数据_postGIS教程
  10. 文明与征服最全兵种克制关系介绍
  11. 开源三轴云台EVVGC(simple BGC)分析
  12. 关于Scrapy爬虫框架中meta参数的使用示例演示(下)
  13. SpringBoot框架的优点
  14. StringTokenizer是什么
  15. 计算机学院心理节活动,计算机学院举办系列心理健康教育活动
  16. JRE和JDK--初学Java
  17. 《图解HTTP》-第十一章(完结)
  18. python中各进制的表示及其转换
  19. 【Linux】进程概念 —— 虚拟内存地址空间
  20. webp格式怎么转换成jpg,3种常用工具方法

热门文章

  1. 微信小程序---实现手机号发送验证码登录
  2. 红米note电信版_标注2014910_官方线刷包_救砖包_解账户锁
  3. java反射回调函数_用J2V8注册Java回调函数
  4. html css燕十八,燕十八_divcss教学笔记.doc
  5. pdf文件怎么在线编辑?内容编辑途径介绍
  6. HTML+CSS项目实践九——设置网站导航栏悬浮在网页最上面
  7. 《拥抱机器人时代——Servo杂志中文精华合集》——4.5 审视无线技术
  8. shell(bash)替换字符串大全
  9. itchat和php,Python使用itchat 功能分析微信好友性别和位置
  10. MODBUS调试工具(modscan32)使用说明