APP下载

基于微信小程序的GIS专业信息查询系统的设计与开发

2020-04-24任安晶方慧王建崔维帅谢济阳

电脑知识与技术 2020年5期
关键词:微信小程序

任安晶 方慧 王建 崔维帅 谢济阳

摘要:地理信息科学已经发展成为一门有着坚实理论基础的学科,为专业相关学习者提供学习与交流的平台具有现实意义。GIS专业信息查询系统基于微信小程序进行设计与开发,同时选用流行的小程序框架ColorUl辅助开发。该系统在微信提供的强大原生APl等基础功能的支持下,能够较好地满足用户需求。该系统选择了35位用户进行内测,受到90qo的用户肯定,用户评价系统功能较完整,且有使用价值。

关键词:微信小程序;GIS学习;查询系统设计;研究生考试

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

文章编号:1009-3044(2020)05-0078-03

开放科学(资源服务)标识码cOSID):

1 背景

伴随着地理信息科学(简称GIS)产业的蓬勃发展,挖掘与培养更多的地理信息系统开发人才(简称GISer)成为社会各界的共识,得到了国家的高度重视,目前我国开设GIS相关专业的高等院校达200多所[1]。本系统旨在方便GIS专业学生,尤其是本科生,进一步了解相关院校的基本信息与专业动态,对自己的学术发展有更好了解与规划。另外,采用微信小程序作为开发平台简化了开发过程,同时借助微信平台能够扩大系统的受众范围,对于用户来说,微信小程序无须下载安装,不占用手机内存,使用更加灵活轻便,故基于微信小程序平台开发了GIS专业高校信息查询系统。

2 项目需求分析

2.1 系统功能介绍

本系统主要由针对信息查询方面的学习贴士、院校位置、院校推荐、院校历史、专业评估以及针对GIS专业交流学习的GIS专区等多个功能组成。旨在从GIS学生信息获取、高校招生两方面着手,为GIS专业相关知识的学习交流提供平台。

2.2 系统结构分析

依据上述功能需求,设计如下系统功能结构图,如图1所示。

学习贴士、院校位置、院校推荐与院校历史功能页面可由首页中央部分菜单栏点击进入,专业评估、GIS专区与联系我们功能页面可由微信小程序内置的底部导航栏点击切换。

2.3 开发技术需求

基于微信小程序的GIS专业信息查询系统的应用环境是移动端操作系统,更确切地说是两大操作系统iOS和Android的微信客户端,小程序开发需要在前期准备申请小程序账户、安装小程序开发者工具、配置项目等过程。

本系统前端采用微信原生框架,同时选用热门微信小程序框架ColorUI,其中封装了较官方更为精美的组件,使用更便捷,并且极大美化了前端用户界面。此外开发过程中还选用了微信小程序线路规划插件,加强了本系统地理信息服务能力。

信息搜集时使用Python的Beautiful Soup 4.4.0(简称bs4)库解析html标签,re库用于字符串匹配,Scrapy爬虫框架进行数据获取。数据库方面选择MySQL数据库。本系统旨在无偿为GIS专业学生提供学习交流平台,故采用了流行的关系型开源数据库MySQL。后端采用PHP对用户请求进行响应,PHP语法上借鉴了C语言,对于有一定C语言学习基础的开发人员比较友好,易于上手。在服务器环境配置上本系统选择phpStudy集成环境,提高了开发效率。

3 系统总体结构

3.1 数据库设计

3.1.1 数据库设计过程

在数据库设计过程中可分为以下六个阶段:第一,系统需求分析阶段,是整个数据库设计过程的基础;第二,概念结构设计阶段。根据系统需求可知需建院校、院校历史、专业评估、用户与分数线等多个实体,且前四个实体间均存在联系。分析所得E-R图如图2所示;第三,逻辑结构设计阶段,將上一步所得概念模型转换为某个DBMS所支持的数据模型,并对其进行优化;第四,物理结构设计阶段。在该阶段,实现了系统需要的数据库与数据表的创建;第五,数据库实施阶段,该阶段实现了数据的少量加载与系统内测,修改了一些明显的错误,如编写PHP代码调用数据库时连库或有关表的查询语句错误,数据表的逻辑错误等;第六,数据库运行和维护阶段。

3.1.2数据获取方式

本系统的数据获取方式主要有人工查找与网络爬虫两种方法。以下着重介绍爬虫方法。

网络爬虫要遵守目标网站的Robots协议,在尽量不影响网站性能的情况下使用。本系统数据爬取时严格遵循目标网站的Robots协议,对于没有定义协议的网站选择夜间用户浏览量较少的时段爬取信息,减少对目标网站服务器的影响。

应用Scrapy爬虫框架主要工作是编写配置型代码。具体步骤有,第一步,建立工程和Spider模板;第二步,编写Spider处理链接爬取和页面解析,定义parse0方法解析网页结构时,建议采用关键词yield定义生成器。生成器每次产生一个值(yield语句),函数被冻结,被唤醒后再产生一个值,它是一个不断产生值的函数,相比循环语句更节省存储空间,使响应更迅速。另外,为方便使用,添加from bs4 import BeautifuISoup代码引入BeautifuISoup类导人到当前命名空间,此后不需要再带包名可直接调用方法名。导入bs4后,主要使用find_all0与select0方法解析HTML页面的内容[2];第三步,编写Pipeline处理信息存储,配置settings. py文件ITEM_PIPELINES选项。添加importpymysql代码导入PyMySQL驱动,便于将爬取的信息直接插入MySQL数据库中,加快信息录入的效率;第四步,配置优化,在settings.py文件中可以配置并发连接选项以提高爬取速度,如配置。由于命令行(不是图形界面)更容易自动化,适合脚本控制。一般使用命令行创建与执行Scrapy。常用爬虫命令有scrapy startproject [dir]创建工程,scrapy genspider [op-tions] 创建爬虫,scrapy crawl执行爬虫。

3.2 系统功能结构分析

3.2.1 首页介绍与用户登录

首页主要有轮播图,功能区菜单栏,本科生院校生活倒计时,用户个人信息展示四部分,如图3所示。在用户第一次访问本系统时,系统会在调用wx.login0获取临时登录凭证code,并回传到自身的服务器;然后调用auth.code2Session接口,向微信接口服务换取用户唯一标识OpenID和会话密钥session_key,并存入自身服务器;用户再次访问本系统时,系统得到用户状态,只需要在自身服务器数据库中根据用户信息进行相关操作即可。需要注意,官方提示会话密钥session_key是对用户数据进行加密签名的密钥。为了应用自身的数据安全,防止数据被篡改,系统自身服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。另外,session_key失效时,可以通过重新执行登录流程获取有效的session_key。使用接口wx.checkSession可以校验session_key是否有效,从而避免小程序反复执行登录流程。

3.2.2 多种类型信息查询服务

涉及信息查询功能的页面有学习贴士、院校推荐、院校历史与专业评估。学习贴士包含了GIS专业导学内容、基础专业词汇辨析、GIS专业考研分阶段建议等针对不同学习层次的GISer的小建议;院校推荐主要服务GIS专业本科生,通过省份,是否省会城市,是否985/211高校过滤院校信息,帮助学生初步判断考研目标院校,并查看目标院校相关考研信息;院校历史提供用户主动查询的功能,可以根据考研一区二区缩小查询院校所在省份范围,然后再输入框输入院校信息时会触发后端PHP接口,自动根据用户输入关键词做字符串匹配,给出用户可能搜索的目标院校,进一步缩小查询范围,为用户提供更优质服务,同时保证查询结果的准确性;专业评估基于第四次学科评估官方公布数据,提供了测绘科学与技术、计算机技术、软件工程、地理学与地质资源共五大类与GIS从业相关的一级学科的院校排名;GIS专区旨在提供贴吧形式的GISer学习与交流平台,系统定时发布较为热门的行业资讯,供用户参考与讨论,此外提供文件上传下载功能,方便信息共享。关于资源文件下载,微信官方提供多种API,如wx. saveImageToPhotosAlbum0、wx.saveVideoToPhotosAlbum0,wx. saveFile0方法。资源按GIS行业会议专家讲座PPT图片与视频、高校GIS专业课公开试题文稿、GIS行业权威企业与机构的网址等信息供用户选择性下载,系统默认资源文件的展示按专题发布时间倒序排列。

3.2.3 院校位置查询服务

在腾讯官方完成key的设定,得以引用线路规划相关功能,包括路线规划,地点查询等。在微信小程序中,通过对json页面的改写,配饰相应的环境,调用相关API,可视化通过小程序自带的map组件得到现实。在实现地图的显示之后需要实现用户的操作。使用选择器组件实现用户自定义操作。分别选择院校所在的省,市以确定目标位置,通过读取本地数据库中存储的X、Y坐标来高亮显示目标点。页面中有显示路线按钮,点击可激活该按钮绑定的事件,即显示在城市内部到达目标院校的公交或地铁线路,系统默认初始位置为该市火车站,之后通formSubmitO函数远程调用计算接口,得以进行坐标的解压(返回的点串坐标,通过前向差分进行压缩),最后,设置polyline属性,将路线显示出来,将解压坐标第一个数据作为起点,在地图上显示。

3.3 系统与数据库的连接

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。利于学习,使用广泛,主要适用于Web开发领域,满足本系统开发需求。

系统与数据库的连接部分使用了PHP的数据访问抽象对象PDO来连接后台数据库。PHP连接数据库主要有两种方式:MYsoLI与PDO,MYsoLI扩展模块仅支持连接MySQL数据库,而PDO可支持十二种数据库的连接,有利于后期小程序的扩展与完善。通过使用PHP连接数据库实现对数据库中不同数据表的增、删、查、改等数据操纵功能,为前端页面的各种响应提供支持。PHP与MYsoL都是较成熟的应用程序,因此.在安全性、可靠性和便捷性等方面都是毋庸置疑的。

4 结束语

微信小程序主要用于开发界面简洁,功能较单一,易操作的系统,满足本系统中各类信息查询服务的要求。基于微信平台小程序的开发加快了系统开发的效率和效果,开发者无须顾虑操作系统差异带来的限制。同时在用户体验上,用户可以扫码即用,方便快捷地分享小程序,从而快速扩大本系统的使用人群范围。由于系统定位受众范围集中于GISer群体,尤其是GIS专业本科生群体,故而系统展示的主要是涉及GIS专业相关内容的信息,特别为GIS专业志愿考研的学生提供的快捷的查询功能。针对现阶段各高校考研信息不对等,部分信息不公开,考研成绩分析等信息不完善的现象[3],本系统侧重了考研信息的公开与共享,致力于服务更广大的优质GISer人才。此外,系统内的GIS专区是另一大特色,采用贴吧形式留给用户学习交流的空间,使GIS学习者们可以更好地学以致用、用以促学、学用相长,培养自己的学习乐趣,了解行业前沿动态。

本系统选择了35位用户进行内部测试,系统尚无功能性问题,90%的用户对使用效果表示满意,肯定了系统的价值,并表示有意愿参与后期系统扩展功能的设计,其他用户表示系统功能较单一,还有很大升级空间。

参考文献:

[1] Chen J,Li J,He J,et al.DEVELOPMENT OF GEOGRAPH-IC INFORMATlON SYSTEMS (GIS) IN CHINA: AN OVER- VIEW[J]. Photogrammetric Engineering and Remote Sensing,2002,68(4):325-332.

[2]沈承放,莫达隆.beautifulsoup库在网络爬虫中的使用技巧及应用[J].电脑知识与技术,2019,15(28):13-16.

[3]刘利利,互联网环境下考研策略的选择[J].才智,2015(32):141.

【通联编辑:谢媛媛】

收稿日期:2019 -12 -15

基金项目:长江大学大学生创新创业训练计划项目(项目编号:2018263)

作者简介:任安晶(1999-),女,河南安阳人,长江大学地球科学学院本科;方慧,女,长江大学地理信息科学专业,本科在读;王建,男,长江大学地理信息科学专业,本科在讀;崔伟帅,男,长江大学地理信息科学专业,本科在读;谢济阳.男,长江大学地理信息科学专业,本科在读。

猜你喜欢

微信小程序
微信小程序在高校英语教学中的应用
当图书馆遇上微信小程序