基于GIS的共享单车站点最优选择查询系统设计

2018-07-27 05:16
计算机测量与控制 2018年7期
关键词:测试用例站点单车

(成都理工大学 工程技术学院,四川 乐山 614000)

0 引言

在科技高速发展的现代社会,城市的交通需求量随着经济的快速增长以及人口的爆炸性增长而急剧上升,交通问题越来越成为阻碍城市发展的重大问题之一。就目前而言,只有优先发展城市的公共交通,通过提高交通的资源利用率才是缓解及解决交通拥堵的重要手段。所以充分使用公共交通减少私家车的出行是目前非常值得研究的一个问题。

因此,在城市化发展中遇到重大制约时,共享单车的出现将会大大地解决交通拥堵的问题,也是社会发展的必然产物和趋势[1]。移动终端在无线通讯技术和硬件发展的基础上不断的向前发展,由早期的掌上电脑已经发展为现在的智能手机和平板电脑。在这个过程中,移动设备的运算和传输功能大大地提高,随着功能的逐渐丰富,在人们生活中也越来越普遍。地理信息系统(GIS)集很多科学于一体的新兴边缘科学[2]。它可以对整个地球表层的数据进行采集、存储、分析以及通过描述来显示出来[3]。因此,借助移动设备会是共享单车较好的选择。在移动平台上[4],使用地理信息系统能将智能化发挥的更好。

基于此,本文利用GIS与智能设备[5-6],帮助用户快速方便的查找共享单车的取车与停放站点,加快改善人民群众的出行方式,贴近绿色生活,更能较好的解决目前共享单车乱停放的混乱现象。因此,文章通过讲述系统的基本需求,并且进行了详细的设计与系统测试分析,致力解决共享单车的智能化发展,很好地满足人民群众的出行安排,并能够在一定程度上保证城市交通与城市面貌的井然有序。

1 ArcGIS for Android

1.1 GIS介绍

GIS(Geographic InformationSyste)简而言之就是地理信息系统,它的主要功能是通过采集、储存、管理、分析和描述与空间和地理分布相关的数据,然后服务于地理研究和地理决策[7-9]。它既能描述、分析、存储空间信息理论和方法,又能通过分析运用地理模型为解决复杂问题提供多种地理信息[10-]11。基于GIS强大的数据处理和图形显示能力,它可以给用户提供运算后的最终结果。综上,运用GIS技术进行行驶路线的查询是目前最为行之有效的方法。就目前的情况来看,GIS技术已经运用于资源、农林牧副渔以及国土等领域。

1.2 ArcGIS for Android介绍

GIS的开发模式分为独立开发、单纯二次开发以及集成二次开发[13]。由于独立开发和单纯二次开发都受到语言和环境的限制[14]。所以GIS目前的开发主流方式还是以集成二次开发方式为主。并且集成二次开发很好地解决了传统二次开发不能脱离GIS软件环境单独运行的问题。基于此,本文将使用ArcGIS for Android开发。

ArcGIS for Android很好地解决了Google不能访问自己定制的地图资源和应用问题[15]。它不仅可以显示导航地图以及查找地址和位置,而且可以从Arcgis线中搜索有效的 地图资源,最主要的是它可以在手持设备中使用GPS。

ArcGIS for Android对于用户查看地图、查看附近站点及详细信息、显示所选站点路径、查看所有站点、能够根据情况设置GPS、路径导航,对于查看地图,又有许多手势操作,例如缩放操作,平移操作,详细功能用例图如图1所示。

图1 功能用例图

2 系统设计

2.1 系统组织结构

服务端包括网络服务器(IIS)、地理信息服务器、空间地理数据库等。各个部分相辅相成,向客户端发送服务,接受客户端的请求进行相应的处理后,返回结果。系统的部署情况如图2所示。

图2 服务端部署图

2.2 客户端程序设计

2.2.1 路径分析

共享单车路径分析模块是本系统的核心模块,该功能主要是指根据用户的地理位置,然后给用户提供最合适的起点与目的地信息,在地图上快速的查找出符合条件的共享单车网点,并规划一条最短路径显示给用户,节约用户的时间,方便用户的出行,这里包括模块的设计、界面的显示,功能的介绍,以及输入项和输出项的说明。

(1)模块设计。

对路径分析模块的具体分析设计,路径分析需要与服务端服务进行交互,且有多个功能需要用到。所以应该尽可能简单、完善的设计此功能。使用顺序图能很直观的表明功能的执行过程,路径分析顺序图如图3所示。

图3 路径分析顺序图

(2)界面显示。

界面能够显示查找后的路径,显示路径需要在MapView中。MapView 是ArcGIS Runtime SDK for Android 的核心组件,通过MapView 可以呈现地图服务的数据。MapView 是Android中ViewGroup的子类,也是ArcGIS Runtime SDK for Android 中的地图容器,与很多ArcGIS API 中的Map、MapControl类作用是一样的。直接显示路径是很方便的。而显示的颜色、样式也都在分析后设定好,引用此功能的时候就不需要在额外设定,大大减少了功能模块之间的耦合性,增强了内聚性,比较符合程序的设计原则,具体的示例如图4所示。

图4 路径显示图

(3)功能。

进行路径分析,查找最短路径,并给出详细的行走信息。

(4)输入项。

路径分析提供的接口中,需要指定图像将要在哪个容器中显示,还需要给出起始点和目标站点的坐标。接口名称为route_analysis。

(5)输出项。

输出执行查找后的结果,并将结果返回。

2.2.2 导航

(1)模块设计。

对导航模块的具体分析设计,导航模块是建立在路径分析的基础上的。它又包含了更加具体的路径指导和地理编码功能,如何走,身在哪,让人一目了然,是一个更加完善的功能。所以为了充分表达其功能性,选择活动图。导航活动图如图5所示。

图5 导航活动图

首先进入导航界面,然后输入起点和终点,如果输入错误的话系统会提示错误,如果输入正确系统就会进行地理编码,然后进行路径分析和规划,把最便捷的路线展示给用户,以方便用户以最快最便捷的方式和路线到达目的地,具体分析如下所示。

(2)界面显示。

查找到路径后,能显示详细的路径信息。如图6所示。

(3)功能。

进行路径分析,地理编码,并给出详细的行走信息。

(4)输入项。

路径导航提供的接口中,需要输入起始点和目标站点的名字。

(5)输出项。

输出执行查找后的结果,并将结果返回。显示具体信息以及路径。

图6 导航输入图

2.2.3 显示站点

显示站点包括显示所有站点和显示附近站点。显示附近站点需要开启定位才可以使用。显示所有站点把地图中所有站点全部的显示出来了。

(1)模块设计。

显示所有站点只需要查找出来然后显示在地图上即可。显示周围站点则需要再进行处理。进行查找时使用ArcGIS API for Android中的identifyTask提供的接口。IdentifyTask 顾名思义即一个识别任务类,是用来识别图层中的要素的。当通过手指点击地图时获取地图上的要素信息,当然在识别操作前必须通过使用识别任务类identifyTask 事先设置好一组参数信息,IdentifyTask 接受的输入参数必须是IdentifyParameters类型的对象,在参数IdentifyParameters 对象中可以设置相应的识别条件。具体的流程如图7所示。

图7 查找顺序图

(2)界面显示。

查找到站点后,按照操作进行显示,查找附近站点如图8所示,系统会详细的显示附近的共享单车的数量以及最便捷的路径。

图8 查找附近站点图

(3)功能。

进行要素查找,查询属性信息,并显示出详细的站点信息且能与用户进行交互。对于弹出的提示框能够随用户任意的隐藏与显示,功能的状态图如图9所示。

图9 查找站点状态图

(4)输入项。

查找站点的接口需要提供将要显示站点的图层,以及中心点的坐标。

(5)输出项。

输出执行查找后的结果,并将结果返回。显示具体信息包括站点的名称,自行车数量,剩余数量,距此的距离。

2.2.4 要素修改

要素修改主要针对的是修改共享单车要素的单车借出数量。这是一个非必须功能,目的只是验证信息显示的实时性。

(1)模块设计。

要素编辑是ArcGIS Runtime SDK for Android 中的很重要的一块功能,要想实现要素编辑功能,首先必须拥有一个Feature Service 服务,在此基础上实现手持端数据编辑。在客户端上,通过ArcGISFeatureLayer 图层进行要素的增、删、改以及查询操作,还可以为每一个要素添加附件,进行要素的附件管理。发布要素服务依然需要足够的资源才能发布成功。ArcGIS API for Android提供了applyEdits接口,使用applyEdits接口可以实现要素的添加、删除以及要素的更新操作。

(2)功能。

能进行要素的属性修改,要素编辑顺序图如图10所示。

图10 要素修改顺序图

3 系统测试与分析

(1)导航测试用例。

导航能够帮助用户查找正确的路线图。需要准确的起始点与终点,因此对用户的输入要求比较高。导航测试用例表如表1所示,比如输入正确的起点中北大学和终点傅山酒店,系统就会根据用户的输入情况显示出路径和具体的方向,否则系统就会提示操作有误,实际结果与预期的结果相同。

表1 导航测试用例表

(2)查找所有站点测试。

点击查找所有站点功能按钮,会显示站点,与数据库中的站点相对比,一样则为正常。所有站点测试用例表如表2所示。

表2 所有站点测试用例表

(3)查找附近站点测试。

当点击查找附近站点功能按钮,系统就会显示出站点,否则系统会提示无站点,测试用例表如表3所示,从表中可以看出系统查找附近站点的预期结果与实际结果相同,满足用户的需求。

表3 附近站点测试用例表

(4)定位测试。

当点击定位功能按钮,系统的定位功能就会开启,然后会显示定位点,接着用户可以根据实际情况判断定位的准确度。定位测试用例表如表4所示,从表中可以看出系统实际测试的结果与预期的判断结果相符,满足用户的需求。

表4 导航测试用例表

4 结论

本文所设计的系统利用了ArcGIS for Android开发了共享单车租赁系统的一个部分以及共享单车的站点查询。同时利用面向对象的程序设计方法进行开发移动GIS,系统具有良好的用户界面与灵活性。并且利用所开发的系统进行了测试与分析,实际的检测结果与预期结果相符,能够满足用户的需求,并且共享单车的智能化发展也能在一定程度上保证城市交通与城市面貌的井井有条。相信对未来共享单车租赁系统的发挥会有很大的帮助。

猜你喜欢
测试用例站点单车
基于相似性的CITCP强化学习奖励策略①
共享单车为什么在国外火不起来
测试用例自动生成技术综述
飞吧,单车
基于Web站点的SQL注入分析与防范
积极开展远程教育示范站点评比活动
对恶意破坏共享单车行为要“零容忍”
共享单车(外四首)
怕被人认出
测试工时受限的测试策略研究