0

免费天气预报代码_天气预报的代码_天气预报代码免费查询

4个月前 | 金刚王 | 35次围观

这是一个简单的天气预报 Demo,有天看手机上的天气,突发奇想,自己能不能也做个来玩玩啦。作为一个技术人员就是要保持一份好奇心。肯定没人家专业的做的好,纯玩。

先来张效果图:

这里简单介绍一下项目的主要功能,先获取本地的位置信息和实时时间,然后根据城市名获取本地的实时天气信息和未来几天的天气信息。切换城市,可以选择想查看的城市的天气信息。

在开始项目之前需要先准备一点资料。

天气预报的信息是来源于高德地图,所以你需要先注册一个账号并申请 Key。

还没用过高德的,这是教程:

然后还需要对 有点一些了解,不懂的可以先去了解了解。

准备工作完了就可以开始干项目了。

关于 Node 的安装和 Vue 初始化项目的知识这里就不说了,百度一下,资料有很多。

首先通过vue init 创建项目,并安装依赖,安装完之后,把项目运行起来。

用你熟悉的代码编辑器打开项目,在 下新建 index.vue 文件。

然后在路由文件 /index.js 中注册路由,引入 index.vue index from '@//index'。

把 替换成 index,再删掉 App.vue 中的图片。

 {
 path: '/',
 name: 'index',
 component: index
 }

这时候访问 :8080/#/,就会显示 index 组件的内容了。

开始写页面了,先把静态页面写好,再添数据进去。当然你也根据你自己的喜欢风格写一个页面。

先实现这样一个静态的页面,代码这里就不贴了,文章末会提供项目源码的地址。

在切换城市那里有用到一个 vant 的组件,效果如下:

好,先安装下 vant.

 npm install vant -S

然后再 main.js 中引入

 import { Area } from 'vant';
 import 'vant/lib/index.css';
 Vue.use(Area);

就可以在组件中使用了。

 

接下来就实现天气预报的业务逻辑部分。

先在 index.html 中引入这个高德和 的 js。我有申请 key,你可以用我的 ,也可以用你自己的 key。

 
 

高德获取定位信息的文档:

高德获取天气信息的文档:

通过 ip 定位获取当前的位置信息,代码如下:

 var map = new AMap.Map(this.$refs.mapContainer, {
 resizeEnable: true
 });
 AMap.plugin('AMap.CitySearch', function () {
 var citySearch = new AMap.CitySearch()
 citySearch.getLocalCity(function (status, result) {
 if (status === 'complete' && result.info === 'OK') {
 // 查询成功,result即为当前所在城市信息
 console.log(result);
 _self.getCurrentCityData(result.city);
 }
 })
 }) 

通过获得到的成名获取天气信息,代码如下:

 getCurrentCityData(cityName){
 let _self =this;
 AMap.plugin('AMap.Weather', function() {
 //创建天气查询实例
 var weather = new AMap.Weather();
 //执行实时天气信息查询
 weather.getLive(cityName, function(err, data) {
 _self.mapData = data;
 console.log("1",err, data);
 });
 weather.getForecast(cityName, function(err, data) {
 _self.featureMapData = data.forecasts;
 _self.featureMapData.map((item,index)=>{
 _self.seriesData.push(item.dayTemp);
 })
 _self.initEchart();
 _self.loader = false;
 console.log("2",err, data,_self.featureMapData);
 });
 });
 },

可以自己打印一下,定位成功返回的数据免费天气预报代码,里面有包含经纬度,省份,城市等等。

接下来写初始化 的代码,代码如下:

 initEchart(){
 let dom = this.$refs.echartcontaier
 var myChart = echarts.init(dom);
 var app = {}, option = null;
 option = {
 xAxis: {
 show:true,
 splitLine:{show:false},
 type: 'category',
 data: ['今天', '明天', '后天', '三天后'],
 axisLine:{
 lineStyle:{
 color:'#fff'
 }
 },
 axisTick: {
 show: false
 }
 },
 yAxis: {
 show:false,
 axisLine: {
 show:false, 
 lineStyle:{
 color:'#fff'
 }
 },
 axisTick: {show:true},
 splitLine:{show:false} 
 },
 tooltip: {
 trigger: 'axis',
 formatter:function(params){ 
 var relVal = params[0].name; 
 for (var i = 0, l = params.length; i < l; i++) { 
 relVal += params[i].value+"°C"; 
 } 
 return relVal; 
 } 
 },
 legend: {
 data:['气温']
 },
 series: [{
 data: this.seriesData,
 type: 'line',
 label: {
 normal: {
 show: true,
 position: 'top'
 }
 }
 }]
 };
 myChart.setOption(option, true);
 }

取到了所有需要的数据,动态添加到页面里面,我们的个人天气预报就完成了。

项目源码地址:

项目做完了,功能比较简单免费天气预报代码,但是比较好玩儿。 有问题的可以留言,我会随时回复的。 也麻烦小哥哥小姐姐高抬贵手给在下点个star哦!!!

本文发布于http://www.jgmcp.com/ 转载请注明。

发表评论