基于微信小程序的天气预报平台的设计与实现

作者: 毛雨萱 杨平恒

基于微信小程序的天气预报平台的设计与实现0

摘要:微信小程序是一种不需要下载和安装,打开即可使用的应用,它实现了应用的 “触手可及”。天气情况是每一个群体不分年龄和层次的人每天都会去关注的信息,打开微信小程序,可时刻关注天气情况,方便出行。文章基于B/S架构,结合移动互联网环境下基于位置的服务、全球卫星定位导航系统以及地理信息系统(GIS) ,以微信小程序为载体,使用JavaScript、WXSS、WXML、PHP等编程语言,以软件工程方法学为指引,从而完成了天气预报平台的设计与实现。

关键词:微信小程序;GPS 定位技术;JavaScript;WXSS;天气预报

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2022)20-0054-03

天气与人们息息相关,天气预报是很多人每天都要关注的事情。每一个群体,不分年龄和层次,有很多人每天都会去关注天气情况。人们可以通过电视台、App来查询天气情况,也可以通过微信小程序来关注天气情况。微信小程序是一种不需要下载和安装即可使用的应用,它实现了应用的 “触手可及”。文章基于B/S架构,以微信小程序为载体,充分利用微信小程序在SNS平台上的地位,使用JavaScript、WXSS、WXML、PHP等编程语言,设计了一款天气预报平台,解决了随时随地了解天气情况的问题。

1 开发原理

1.1 微信小程序

微信小程序并非一个凭空而生的概念[1],小程序底层主要由Hybrid技术进行渲染,界面使用成熟的Web技术渲染,并辅以大量的接口提供丰富的客户端原生能力。小程序底层使用双线程结构,将渲染和逻辑运算任务分开,防止UI进程和脚本进程互相干扰,解决了页面卡顿、应用加载过慢的问题,从而使小程序能够快速加载。当前微信小程序处于蓬勃发展阶段,但功能的简单堆砌,微交互中细节的忽略,造成了使用者的体验不佳。所以,除了要满足基本使用需求,设计师更应该注重界面中的一些日常操作行为的细节点。

1.2 微信小程序开发技术简介

微信可以说是目前国内使用率最高,覆盖面最广的App。微信拥有庞大的用户基础,微信小程序的相关开发也很热门。只要是支持动态网页开发的编程语言,例如:PHP、Java、ASP.NET、Ruby、Python、Note.js等,基本都可以用来进行微信小程序的开发,微信小程序开发的语言有许多,开发人员可以选择自己最擅长的编程语言进行开发。微信小程序的开发大部分是来源于Java和PHP技术,因而开发起来相对都比较简单便捷。

微信小程序是一种基于微信平台的,不需要下载安装即可使用的应用,包含客户端和服务端。客户端使用WXML、WXSS和JavaScript语言进行开发。WXML是为微信小程序框架设计的一套标签语言;WXSS是用于描述WXML组件样式的一套样式语言;JavaScript是一种具有函数优先性的轻量级、解释型的编程语言。服务端使用PHP语言开发,以MySQL数据库和本地磁盘作为存储媒介,以NGINX服务器作为运行介质。小程序类似于H5表单,需要掌握WXML和WXSS,以及基于JavaScript的逻辑层框架。这里的WXML等同于Html,而WXSS等同于CSS。

1) 微信小程序的WXML

WXML语言的编程概念类似于Html网页的编程技术。微信小程序的技术含量要求不高,只是更换了一些标签。即使不太擅长开发前端的开发人员,转用微信小程序,也是很快就能上手的。

2) 微信小程序的WXSS

微信用自己的开发语言WXSS代替了Web编程中的CSS。WXSS只是对CSS的某些标签做了简单的替换,其中大部分是原始的CSS。主要的实现思想与Web开发技术基本相同,它们都是通过调用同一页面来实现的,微信小程序比Web开发更简单,更方便。

3) 微信小程序的JS

如果要开发微信小程序,必须精通JS。只要具有Html、CSS、JS的基础,就可以使用微信小程序JS,进行前端开发。简单模式如图1所示。

4) 微信小程序的JavaScript[2]

本文采用Java进行微信公众平台开发,需要掌握Java基础知识、JSP、Servlet、JavaBean和JDBC(操作数据库)。Java 编程语言是一种化繁为简的编程技术,可以参照同类开发技术的优点,摒弃缺点。利用Java 编程语言编写的程序具有独立的体系结构,可以将交互式动画转换成占用内存较少的编程代码,可以达到减小内存的目的,并且在优化编程布局方面,也具有很明显的优势。

除了以上几个开发技术,还需要掌握JSON。JSON是微信小程序的主要和次要接口。开发者可以通过JSON控制上下菜单栏、页面的显示顺序。JSON仅适用于基本小程序的框架,除显示类型外,每个前端操作都需要与后端匹配。修改源代码后,需将其提交,进行审核,用户只能在审核通过后才能看到修改。

2 GPS 定位技术

GPS全球卫星定位导航系统,开始只适用于军事领域,后逐步转为民用,进而被广泛应用于商业和科学研究等领域。GPS定位技术的基本原理就是将接收机接收到的信号经过精细的误差处理,再进行精确的解码分析,得到具体的位置信息,最后将位置信息传送给连接设备。连接设备对该信息进行精确的计算和变换后,最终将信息准确快速地传递给移动终端。GPS定位技术可为用户提供准确的随时随地的位置信息服务[3]。

在移动通信网络中,通常会使用到以下几种定位技术[4]: 一是基于Cell ID的定位技术,它首先获取用户当前所在的基站Cell信息,其精确度取决于移动基站的分布密度及覆盖范围的大小;二是基于AFLT(前向链路三角定位法) 的定位技术,是CDMA独有的技术。在进行定位操作时,手机终端同时监听至少三个基站的导频信息,利用码片时延来确定用户当前位置到最近基站的距离,再利用三角定位法,从而准确地算出用户的具体位置; 三是基于AGPS的定位技术,简化了设备终端的烦琐工作,采用复杂的定位算法,由定位服务器与终端相互紧密配合,从而降低接收信号弱、干扰多等不利因素。定位平台将经纬度信息,精确传送到应用服务平台,或者通过无线网络送回服务终端,从而提高定位精度和灵敏度,最大精确度地完成定位工作。

GPS定位技术具有操作方便,使用灵活的优势。在布网和观测时,不受时间、空间、地形条件的任何限制,具有高效率、高精度、观测和数据处理的自动化程度高等优势。GPS 的引进与推广应用,标志着高新技术已渗入方方面面的领域,在城市建设规划、土地勘察利用、公路水利建设、科技商业发展、人民生活水准等方面发挥了重要作用。

3 系统设计

在微信小程序开发者平台上设置合法范文域名,需要用到下面两个API域名。注册和风天气平台(https://dev.qweather.com/)的开发者账号及天气API(https://tianqiapi.com/index/doc?version=v6)的开发者账号,后续获取相关天气气象的精准数据时,需要在访问链接中填入APPID,和风API一日可访问16700次,天气API仅可访问300次,超出即可通过更换IP的方式继续访问。

3.1 提取城市坐标

每个城市为满足国土规划、城市建设、民政管理、水利建设等测绘工作与管理的需要,都需要建立自己独立的坐标系,就是城市坐标系。城市坐标系是建立在各城市的基础控制网和与国家法定坐标系相联系的基础上的。从2008年7月1日起,国家启用2000国家大地坐标系,之前的法定坐标系1954北京坐标系、1980西安坐标系,都停止使用了。2000国家大地坐标系的城市坐标系的建立是利用2000椭球参数和高斯-克吕格投影来实现的。国家标准坐标系在采用平面坐标时,投影带一般是6度带和3度带,这种投影不一定和城市的中央子午线接近,这就造成了投影变形过大的问题。为控制变形,各城市都需要在国家大地坐标系的基础上,建立自己独立的城市坐标系。由于国家控制网的精度只能满足中、小比例尺测图的要求,许多城市为了适应城市规划与建设管理,为了满足各类工程的勘察设计、施工管理、地形测绘、地籍测量等需要,从而诞生了高精度的城市坐标系。

以无锡市为例,无锡城市坐标系是2015年启动了市区D级GPS控制网布测项目,结合2000国家大地坐标系,对城市已有的基础控制网,进行升级改造而建立的。城市坐标系的建立要根据城市地理位置和平均高程等实际情况来确定。无锡主要为平原地区,所以可以沿用椭球面作为高程投影面,尽可能与现有坐标系保持一致。无锡市现有坐标系的中央子午线均为120°,若将城市坐标系设置为120°18′,那么采用四参数模型进行现有坐标系到城市坐标系进行转换时,两坐标系投影的中央子午线会不一致。因此,转换前需将重合点的坐标系换算至同一中央子午线[5]。

通过调用无锡官方提供的应用程序接口,获取无锡的城市坐标“116.41,39.92”,如果获取失败则唤起权限给予弹窗,如果始终无法获取到城市坐标,则保存一个默认坐标用于小程序显示。提取无锡的城市坐标系的代码如图2、图3所示。

接下来通过循环语句依次调用自定义函数,获取与城市相关的信息。代码如图4所示。

在此基础上,通过定义数组,事前存入北京、上海、重庆等各大城市的坐标信息,这里以北京为例。设计代码如图5所示。

根据各个城市的GPS坐标获取相关城市信息,主要是获取城市名称。设计代码如图6所示。

3.2 调用天气预报数据

以无锡天气预报为例,首先获取24小时天气情况。设计代码如图7所示。

将获取到的24小时天气情况的数据中的时间单独提取出来并通过hours2数组存储,设计代码如图8所示。

以此类推,获取最近7日天气数据。设计代码如图9所示。

4 结论

在当今的移动互联网不断发展和新媒体技术不断推广应用的时代背景下,用户越来越希望能快速准确地获取各种信息,微信小程序与手机App相比具有很强的竞争优势,这是用户轻应用、重需求的集中体现。本文设计的基于微信小程序的天气发布平台具有界面美观、操作便捷等特点,非常符合小程序的设计初衷,即使未接触过类似平台的使用者,也能迅速熟悉其功能并进行相应的操作。本平台经过用户界面、功能和性能测试,能够应对用户不规范操作、数据重复提交等行为,具有较高的实用价值。综合以上,微信小程序需要充分考虑到用户在使用产品时的具体行为和用户在操作每一步时的体验感,以促进微信小程序的完善与发展。

参考文献:

[1] 郝杰.微信小程序出世 取代APP?[J].中国经济信息,2016(20):10.

[2] 魏玮.基于JavaEE及移动地理位置服务的居民出行调查系统[D]. 上海:华东师范大学,2013.

[3] 李可欣,刘信坚,姜瑜亮,等.基于微信平台的脸识别系统设计与研究[J].科学技术创新,2021(17):91-93.

[4] 丁大钊.基于CDMA终端的GPS数据处理模块的设计及实现[D]. 郑州:解放军信息工程大学,2008.

[5] 张艳炜,吴善昕,秦政国.对无锡城市坐标系改造方法的建议[J].现代测绘,2017,40(3):45-47.

【通联编辑:张薇】

经典小说推荐

杂志订阅