APP下载

“佛山天气”微信系统设计及实现

2015-03-28何珊王莹杜小洪

气象研究与应用 2015年1期
关键词:佛山气象天气

何珊,王莹,杜小洪

(佛山市气象局,广东佛山528000)

1 引言

天气预报被制作出来之后,包含预报内容的信息需要被传播,既然要传播就离不开载体这种手段。随着现代社会的不断进步和发展,以及作为气象服务手段的信息传播载体日益增多。

如果按照载体的传播手段进行分类,大致可分为以下几类:印刷品;广播、电视;声讯电话、手机短信;因特网等种类[1-7]。不同的气象服务手段各有优缺点,适用于具有不同特点和需求的服务对象[8-10]。相对而言,最近几年推出的微信自媒体平台则兼具收发免费、高效、多功能化、用户广泛的优点,在气象信息的发布上发挥着越来越普遍的作用。

2 微信气象信息公众平台系统概述

2.1 微信及微信公众平台的简介

2.1.1 微信(WeChat):2011年初,腾讯公司推出的一款快速发送文字和照片的手机软件。用户可通过手机、平板电脑或网页快速发送语音、图片及文字[11]。

2.1.2 微信公众平台:通过该平台,个人或企业都可以打造一个微信的公众号[12],可群发文字、图片、视频语音等内容。目前已有很多行业开通了公众账号,如银行、航空公司、通讯运营商等[13],利用微信平台为用户提供服务,如查询余额,办理值机手续,挑选座位,查询业务信息等[14]。微信用户可搜索微信号或扫描二维码关注微信公众号[15]。

2.2 使用微信平台公布气象预报、预警信息的意义

气象预报、预警信息与人民群众的日常工作、生活都息息相关。而气象信息受到其时效性的限制,必须及时、高效的传播给公众,才能更好的为农业生产及群众的工作、生活服务。因此,通过微信公众平台迅速、广泛地传播包括文字、图片、语音内容的天气信息(图1),具有其积极意义。

图1 服务器与用户的信息交互方式

3 佛山天气微信公众号的系统功能设计

3.1 微信公共平台的建立

第一步需要申请一个微信公众账号。申请时需要提供包括基本信息、邮箱激活、信息登记、选择类型和公众号信息进行注册[16]。第二步在登录到公众微信后,选择成为开发者,并配置好接收服务器。URL填写已建立的Web服务器。Token为一个识别代码,可以随意填写,用作生成签名。最后使用微信公众平台的开发接口,公众号可在自身服务器上接收用户的微信消息,并可按需回复。此外,开发接口还提供了更多更高级的功能和体验,如会话界面的自定义菜单、获取更多类型的消息等[17]。

3.2 系统功能模块设计

(1)天气预报信息查询

此模块通过后台自动更新信息,用户可以随时查询佛山市的逐3小时精细化预报、未来24小时预报及未来十天的趋势预报,还可以查询未来24小时的生活指数指引,并有国内主要城市和广东省内城市的天气预报内容可供查询。

(2)天气实况查看

除了普通用户外,还考虑到有不少气象爱好者希望获取预报结论以外的气象信息,本模块设置了基于地理信息提供的气象自动站要素查询,可以根据用户发送过来的地理信息,通过后台计算后,将距其最近的气象观测站的气温、雨量、风速等实况要素发送至用户手机。此外,还提供了雷达图、卫星云图及台风路径图的查看界面。

(3)科普栏目

此栏目的后台模块建立在自己的服务器上,通过编辑人员定期的手动更新,能够根据当前的季节、气候及天气热点事件及时更新相关科普信息,从而达到较好的科普推广效果。

“佛山天气”微信后台系统功能模块框图如下所示(图2)。

4 佛山天气微信公众号的技术实现

4.1 程序设计语言

图2 “佛山天气”微信功能模块框图

本程序使用JAVA程序的设计语言。Java由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口。在云计算及互联网的产业下,Java具备了简单、面向对象、分布式、解释性、安全、可移植、高性能、多线程和动态语言等显著优势和广阔前景。

而天气消息的发布也正需要这种跨平台、高性能的程序设计语言来完成,因此,设计时决定使用JAVA程序设计语言来编写项目代码。

4.2 Tom cat服务器的选择

Tomcat5支持Servlet2.4和JSP2.0。由于Tomcat先进、性能稳,且免费,得到很多软件开发商认可,成为目前较流行的Web服务器。Tomcat服务器在中小型的系统及访问用户不多的情况下普遍使用,成为开发及调试JSP程序的首要选择。当在机器上配置好Apache服务器,即可利用它响应对HTML页面访问的请求。

4.3 使用UNIX系统进行服务器布署

UNIX系统是一个多用户,多任务的分时操作系统。UNIX的系统结构可分为两部分:操作系统内核(由文件子系统和进程控制子系统构成,最贴近硬件)及件)及系统的外壳(贴近用户)。由于UNIX系统自身具有很多的优点(表1),所以十分具有使用价值。

4.4 信息平台的制作

4.4.1 气象数据更新原理

通过Java程序连接数据库,通过java main方法在Linux系统计划任务的中定时生成新xml文件,实时更新天气数据,xml文件是天气数据文件,记录了时间、温度、风力以及图片连接信息。此外,佛山天气微信公众账号还有一个特色栏目“想点就点”,用于科普推广介绍。这个栏目是通过Java web程序开发的科普知识制作平台实现的,该平台的开发后台和前端分别应用了struts开源框架和图文编辑生成网页插件,实现人工从后台对科普知识网页的编辑、修改、删除,最后上传。通过科普知识制作平台可生成html文件(图3)。

表1 UNIX系统的主要优点及表现

图3 科普栏目操作界面

4.4.2 应用kindeditror图文编辑平台界面

KindEditor是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用KindEditor把传统的多行文本输入框(textarea)替换为可视化的富文本输入框。其代码编辑形式如下:

(1)取得HTML内容

html=editor.html();

(2)同步数据后可以直接取得textarea的valueeditor.sync();

htm l=document.getElementById('editor_id').value;

原生APIhtml=K('#editor_id').val();

KindEditor Node APIhtml=¥('#editor_id').val();

(3)设置HTML内容

editor.html('HTML内容');

KindEditor的可视化操作在新创建的iframe上执行,代码模式下的textarea框也是新创建的,所以最后提交前需要执行sync()将HTML数据设置到原来的textarea。它在默认情况下自动寻找form元素,找到form后onsubmit事件里添加sync函数,所以用form方式提交数据,不需要手动执行sync()函数。KindEditor默认采用白名单过滤方式,可用htmlTags参数定义要保留的标签和属性。

4.5 信息的交互

应用JAVA Servlet接收用户消息请求并返回信息,Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。一个servlet就是Java语言中的一类,用来扩展服务器性能,服务器驻留可通过“请求-响应”的编程模型进行访问的程序。

实现该模块功能的关键Java代码如下:

@Override

protected void doGet(HttpServletRequest request,

HttpServletResponse response)throws ServletException,IOException{

String signature=request.getParameter("signature");

String timestamp=request.getParameter("timestamp");

String nonce=request.getParameter("nonce");

String echostr=request.getParameter("echostr");

log.info(signature+":"+timestamp+":"+nonce+":"+echostr);

PrintWriter out=response.getWriter();

out.write(echostr);

4.6 系统实现效果

本系统可以实现用户方便快捷的实时查询佛山本地天气信息,包括佛山各区的精细化逐三小时预报、未来24小时生活指数、以及未来十天的天气趋势等预报信息和自动站实况信息,雷达图、天气云图、台风路径、预警信息的天气实况(图4)。

图4 佛山天气微信服务界面

5 结束语

实现微信公众号服务的后台技术还有很多,本文探讨的只是其中的设计方法之一。本系统的设计实现后,打破了微信公众号之前单纯采用关键字点播的服务方式,用户使用菜单界面清晰明确,只要点击相应的查询菜单即可直接获取所需信息查询。并且利用微信后台给出的开放式第三方接口打造了风格独特的气象科普栏目。在众多的气象微信公众号中独树一帜,打破了气象服务同质化现象。一段时间的试运行后,此栏目受到用户的诸多好评。通过基于微信平台提供的第三方接口打造的该后台系统,“佛山天气”微信公众号还可以根据自身特点和用户需求,不断升级服务方式,继续丰富微信气象服务产品的信息量及改造包装形式,打造更具影响力的佛山气象微信服务形象。

综上所述,“佛山天气”微信的后台系统设计是将先进的气象技术与电脑互联网科技紧密的联系在一起,利用多种软件应用编辑技术制作的微信公众平台能够将气象信息实时、快速、高效的发布给微信用户,该方式已渐渐成为气象预报、预警信息服务的重要传播渠道之一。

[1]吴益平.新形势下发展基层公共气象服务的几点思考[J].气象研究与应用,2012,33(1):101-104.

[2]李娜,卢伟萍,秦鹏.微博在公共气象服务中的应用及发展[J].气象研究与应用,2012,33(2):107-109.

[3]廖贤达,姚学民,黄学忠.行业气象服务要点探讨[J].气象研究与应用,2008,29(4):86-89.

[4]何伟芬,林展新,莫小梅.气象微博公共气象服务新途径探索[J].气象研究与应用,2011,32(S2):140-141.

[5]黄浩波,何卫华,叶青.微信及其在图书馆信息服务中的应用[J].图书馆学刊,2013,35(1):62-64.

[6]贾天清,黄光明.基于需求为导向的公共气象服务层次和发展重点[J].广东气象,2010,32(5):34-35.

[7]练江帆.电视气象节目的服务性与竞争力的提升[J].广东气象,2008,30(2):45-46.

[8]关鸿志,郑延庆,陈静.小灵通天气彩铃的制作与市场前景[J].广东气象,2008,30(2):47-48.

[9]仇如英,张毅.正确解读电视气象节目的收视率[J].广东气象,2008,30(5):45-46.

[10]仇如英,张毅.电视气象节目编排的重要性及应用[J].广东气象,2008,30(1):61-62.

[11]王遂缠,孙林花.基于Internet平台的灾害性天气预警信号及气象信息发布系统[J].气象科技,2007,35(2):295-298.

[12]童慧.微信的传播学观照及其影响[J].重庆社会科学,2013(9):61-66.

[13]叶林洁.微信对信息传播的影响[J].艺术科技,2013(6):72.

[14]张德申,秦红亮.微信公众平台开发——订阅号功能开发研究[J].电子技术与软件工程,2013(19):66-68.

[15]马振贵.微信:超越短信和IM的存在?[J].软件工程师,2012,25(S1):35-36.

[16]王传龙,韦娜.浅析“微信”产品的交互设计——创造一种生活方式[J].商业文化(上半月),2012(3):164.

[17]徐进.微信开启后微博时代[J].知识经济(中国直销),2012(07):78-79.

猜你喜欢

佛山气象天气
《佛山陶瓷》杂志征稿启事
气象树
佛山万科金融中心
天气冷了,就容易抑郁吗?
《内蒙古气象》征稿简则
佛山瑞光
谁是天气之子
盛暑天气,觅得书中一味凉
广东佛山,有一种绿叫富贵来袭
Weather(天气)