天气预报移动App的设计与实现

2017-02-21 20:12马洁
科技创新与应用 2016年36期
关键词:天气预报

马洁

摘 要:随着手机平板等移动设备的普及,用户对应用App的需求也在不断增加,传统的天气预报在时间性、功能性上已无法滿足公众的需求,各种天气应用App应运而生。“互联网+”时代的来临,天气与农业、天气与交通的结合等,也给天气App带来一场革新。本App项目的主要目的是打造一款方便快捷、功能完善的使用App。

关键词:移动开发;天气预报;实用App

1 概述

随着智能手机及平板的广泛使用及无线网络的全覆盖化,我们进入了移动互联网时代。近年来,在政府的工作报告中,提出了“互联网+”的概念,深度融合云计算、大数据、物联网与现代制造业等。 “互联网+气象”以传统的气象数据为基础,利用移动互联网与大数据,使用户随时随地获取需要的天气信息及各种气象所带来的影响。

2 系统分析

传统天气预报中,播放时间固定,无法时时获取;由于时间限制,选用重要局部地区播报,不能详细描述各街道、区域的天气信息;播报的天气信息较少,往往大范围覆盖;信息融合与扩展较少,例如缺少穿衣、疾病、污染、交通、重大灾害等带给公众的影响。

本文设计的天气预报移动应用App从以上出发点考虑,系统总体目标是通过该程序,用户可以用手机及网络自动定位自己的位置,获取当前天气与未来七天的预报,获取详细地区,具体到街道、高速公路的天气信息,获取当前位置的各项实时的天气信息,推送重要的预警信息。由于该应用需要使用网络来完成定位及获取天气信息,因此需要保持网络畅通,该应用主要包含以下功能:

(1)美观、易用的用户界面,保证用户直接上手便可以使用。

(2)使用GPS获取当前位置,获取当前位置的天气详细信息与一周天气预报,也可以选择相应地区,获取天气信息。

(3)详细天气实况信息,包括各详细地区的实时温度、风度、气压、可见度。

(4)预警信息,包括特大灾害等信息。

(5)个人与系统信息,包括个人相关信息、系统版本、升级等服务。

3 天气预报的界面设计与实现

App界面的设计是用户体验的一个重要指标,在设计时应该从美观、易用、风格一致的基本思想进行考虑。

3.1 引导界面

App中经常会使用到引导界面来显示当前App的图标、名称、版本及相关信息,方便用户在初次使用时了解该应用的基本信息及常用便捷操作。在应用中通常使用两种方式的引导界面,一种是滑动引导界面,用户可以翻页查看,也可选择跳过引导界面。另外一种方式是仅有一张引导界面,隔几秒钟后自动跳转到主界面。第一种引导方式在使用时通常包含多张引导界面,需要花费用户较多的时间,本系统考虑到用户在使用天气预报App应用时的时效性,采用第二种方式,减少用户等待时间,并在引导界面中检测用户的网络是否畅通,提示用户打开网络。

3.2 主界面

主界面分为四部分,分别为首页、实况、预警、个人四个标签页。采用ViewPager与Fragment相结合进行设计,每一个Fragment作为一个标签页,可以通过滑动进行翻页控制。Fragment是一种UI碎片,是Android3.0版本新添加的功能,为了考虑与之前版本的兼容性,Fragment需要嵌入在Activity中,不可独立使用。相比较以往单纯使用Activity而言,同样的界面Fragment占用内存较少,响应速度较快。另外Fragment的碎片化管理,不仅在屏幕的设计上更加灵活,在移植其它平台时,也可以节省大量时间和精力。

首页显示当前位置与天气信息及一周天气,该布局主要通过线性布局、相对布局与TextView、ImageView等控件相结合实现。在设计时,考虑用户最为关心的信息显示在重要位置。实况信息条目较多,采用ListView与Adapater的方式显示多个列表,用户选择某一项之后进入到相应的界面。预警部分采用WebView方式载入预警信息。第四个页面主要包括个人信息、版本升级、意见反馈、关于应用等基本的系统信息,同样采用ListView与Adapater的方式进行显示。

4 功能模块设计与实现

本文选取该系统的两个重要模块进行介绍,包括天气预报模块与实况模块。

4.1 天气预报功能模块

该模块是用户最重要、最关心及直接进入的界面,该模块提供当前的天气信息以及未来7天的预报信息。首先通过GPS定位获取当前位置信息,通过不同的地址所对应的地区代码、类型与时间获取最终的URL。例如:

String finalUrl =“http://open.weather.com.cn/data/?areaid=” +areaid+“&type=”+type+“&date=”+date;

根据最终URL,利用Http协议从相应的天气接口API中获取相应位置天气信息,得到的信息为Json数据格式,最后通过对获取的Json数据进行解析,得到当天的天气信息与七天的预报信息并显示到首界面上。

4.2 实况功能模块

实况功能模块是本系统较为特色的模块,不同以往的是包含详细位置的各项指标信息,包括实时温度、实时湿度、实时风向、实时风力、实时降水等气象信息,选择其中一项后,进入地图界面,可以清晰地显示每个地区的实时气象。实况功能模块还加入了交通气象、下一场雨等融合信息,其中交通气象中包含重要高速公路及路线的天气情况,用户在出行时可以方便规划路线,下一场雨中包含未来几个小时内降雨量的变化,给农民对农产品的耕作带来及时的消息,融合信息给出行与农业等方面带来帮助,同时也属于智能交通与智能农业的范畴。

当前的手机地图服务绝大多数都是通过调用第三方提供的地图API结合手机的GPS定位模块来实现,通常包括谷歌、高德等。

开发者不仅可以通过Android定位SDK实现定位功能,获取当前的位置,还可以根据自己的需要添加到应用程序中进行编程。本系统采用高德地图提供的SDK进行开发。要使用高德地图首先要获取高德地图官网的Key值,并在项目中配置权限。然后在工程的libs根目录下,导入将高德地图SDK的jar文件包,之后通过高德地图与当前各种气象信息进行综合编程,得到详细位置的各项天气实况信息。该项目通过导入高德地图,不仅实现了对手机位置的定位,用户还可以通过放大和缩小来查看周边的各种实况信息。

5 结束语

该项目从用户需求出发,对项目进行了整体的需求分析,界面设计及各模块的详细设计,代码的编写、测试及调试,天气预报系统的所有功能都完整地实现,并且形成可以正常运行并应用的客户端。本系统具有很好的实用价值,使用户方便快捷地获得实时的天气信息,并给智能农业与智能交通带来一定的帮助。

参考文献

[1]王向辉,张国印,沈洁.Android应用程序开发[M].北京:清华大学出版社,2010:67-289.

[2]李华忠,梁永生,刘涛.Android应用程序设计教程[M].北京:人民邮电出版社,2015,5.

[3]传智播客高教产品研发部.Android移动应用基础教程[M].北京:中国铁道出版社,2015,5.

[4]刑伟寅.基于Android平台的天气预报系统设计与实现[J].信息与电脑,2015,19.

[5]苏亚光,吕实诚,于复兴.Android手机平台下Google天气预报客户端的开发[J].电脑编程技巧与维护,2012(3):60-65.

[6]余志龙.Google Android SDK开发范例大全[M].北京:人民邮电出版社,2009.

猜你喜欢
天气预报
天气预报
天气预报
浅谈短时和临近天气预报在防灾减灾中的重要作用
测不准的天气预报
如果
局部地区在哪儿
宇宙“天气预报”
天气预报威利先生
Nothing Has Meaning Is Easy