秦佳,顾欣仪,孙浩天,乔雨
(南京工业大学 浦江学院,江苏南京,211200)
传统的城市停车场已经不适应当前停车的需求,因此智能停车场地出现缓解了传统停车场的运行方式复杂、成本高等问题。随着移动网络的快速发展以及智能终端设备的普及,基于位置的服务得到广泛的应用。在此背景下,本文提出一种基于Android 系统的城市停车预约及车位共享的系统,通过网络及软件技术来优化城市中的停车问题。一方面能够为用户提供停车方面的便捷,帮助用户寻找最合适的停车点,节约时间成本;另一方面,通过智能规划的方式进一步提高车位资源的利用率。
本系统主要提供停车方面的服务,主要包括停车场查找和预约、停车场导航、动态计费收费、私家车位共享等功能,满足用户出行便利性需求,解决因配套车位短缺带来的停车难问题,实现车位的合理利用。用户可以利用APP 完成注册和登录,登录后可以在首页搜索指定位置附近的停车场,并对车位进行预约;预约完成后可选择是否调取手机中已安装的导航软件(以高德地图为例)进行线路导航,使用完成后可以查询停车费用,进行在线支付。私有车位车主登录后对车位信息进行认证,验证通过后可以发布共享车位的相关信息,如地址信息和收费信息。
本系统采用组件化架构,按照功能划分各个业务组件模块,主要划分出首页、我的、导航、订单四大模块如图1所示。
图1 系统整体架构图
为了准确地获取用户需求,提供用户最需要的服务,本项目在设计系统功能之前,首先针对目标用户人群进行需求访问,鼓励用户主动提出需求或期望解决的问题;并同时在不同的社区发放调查问卷,对不同人群进行抽样分析;最后将获取到的用户需求进行整理,利用软件设计的方法进行功能设计与实现。
此功能针对外出人群,由于对目的地的周边环境不熟悉,经常在到达目的地后还需要花额外的时间和精力寻找附近的停车场[2]。
用户登录本系统后,输入目的地可查询该地址附近的停车位信息,包括商用停车场、私家空闲车位等信息,用户选择最适合自己的位置并进行预约,预约需要提交个人基本信息、车辆基本信息、预计停车时长等信息,预约成功后即可使用该车位,使用结束后可以对费用账单进行处理。
车位的查找和预约功能主要为需要停车的用户服务,而拥有产权车位的用户也可以在本平台发布空闲车位的相关信息,包括车位地址、编号、空闲时间段、停车费等。通过这样的方式,盘活部分车位资源,进一步提升车位利用率,缓解停车不便的问题。在车位所有者成功发布车位信息后,这些车位信息将会更新在可用车位的页面上,供需要的用户选择。
停车场预约及共享的数据库系统主要由三个部分组成,分别是个人用户信息、停车预约订单信息和发布的共享车位信息。本系统通过MySQL数据库管理系统建立数据表,从而实现对相关信息的统一存储和管理。
表1 主要用于存放用户车辆方面的数据,包括id、carNum(车牌号)、brandid(车位id)、brandName(车位名)、carType(车型)字段,其中id 字段为主键,用于区分不同车辆信息。
表1 tb_car
表2 主要用于存放用户账号方面的数据,包括id、username(用户名)、password(密码)、is_mgr(头像)字段,其中id 字段为主键,用于区分不同用户信息。
表2 tb_user
表3 主要用于存放共享停车场方面的数据,包括id、parkName(停车场名)、parkAddr(停车场地址)、price(价格)字段,其中id字段为主键,用于区分不同共享停车场信息。
表3 tb_sharepark
表4 主要用于存放停车场订单方面的数据,包括id、parkName(停车场名)、parkAddr(停车场地址)、lat(维度)、lng (经度)、carNumber(车辆编号)、startTime(开始时间)、endTime(结束时间)字段,其中id 字段为主键,用于区分不同车辆订单信息。
表4 tb_order
本系统基于功能需求分析,主要功能分为车位预约和私家车位共享两个模块,具体包括停车场查找和预约、停车场导航、动态计费收费、私家车位共享等功能,系统功能模块图如图2 所示。
图2 系统功能模块图
3.1.1 用户功能主界面
用户功能模块主要实现停车场查找预约功能和共享私人车位功能两个部分,主界面由上方的轮播图、中部功能区和下方的用户地址定位组成,用户可以根据需求选择相应功能进行操作,如图3 所示。个人中心由钱包、个人车辆信息、预约订单信息、停车记录和共享车位发布信息组成,如图4 所示。
图3 系统主页面
图4 用户信息界面
首次预约将收集用户信息,包括车辆车牌号、用户手机号,首次收集后将保存于个人中心,后续使用如需修改可手动修改或添加删除。
3.1.2 车位预约功能
用户通过输入指定位置信息可以查询可用的停车场信息,搜索页面中会实时定位用户所在位置并显示周边位置信息,位置信息可手动缩放和移动,通过搜索可以选择不同停车场进行操作,点击停车场可以查询到停车场具体信息,例如车位总数、车位剩余数、不同车型收费标准等,输入车辆信息后可以点击进行预约按钮选择预约时间进行预约操作如图5 所示。
图5 停车场搜索功能
通过APP 可以查询并预订停车场空余车位,通过后台数据库的实时更新为用户预留车位,若用户超过所申请的预约时间则后台自动解除预约。用户通过搜索创建搜索对象,调用poiSearch 的searchPOIAsyn()方法发送请求。
核心代码如下:
3.1.3 停车场导航
预约停车成功后用户可以在个人中心的订单中查找到预约信息,通过设置高德地图的开放API[3],点击订单中的“导航”按钮后会调用移动终端中已安装高德地图并由其为用户导航至相应停车场。
当用户预约成功后显示地图,地图通过myLocation Style 初始化定位蓝点,通过myLocation Style.myLocation Type(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE) 连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。如果不设置myLocationType,默认也会执行此种模式。
3.1.4 停车费用支付
停车结束后系统按照每个停车场的收费标准以每小时计算费用,可以在我的订单中可直接进行费用支付,支付后系统反馈予停车场,用户可直接取车并快速离场。用户也可以先行取车离场,系统按照停车场的收费标准以每小时计算费用后自动创建订单信息,用户可以在规定时间内主动支付费用。
3.2.1 车位信息发布
私人车位用户可在共享车位中上传车位信息,包括填写车牌号、车位地址和收费的定价,审核通过后即可成功发布。车位成功发布后会提示用户发布成功,其他用户将在车位预约中可查找到车位信息并预约,预约成功将预约信息反馈给业主。如图6 所示。
图6 共享车位界面
核心代码如下:
每次用户提交一个新的车位共享后,都会初始化新的Share Park Adapter 参数并提交给数据库。
3.2.2 车位费用收取
停车结束后车位费用将直接存放至用户钱包中,用户可用其支付下次车位费用或提现至自己的银行卡中。
本系统设计目的是解决传统停车场无法快速寻找车位和难以错开时间合理安排车位等问题。本客户端程序从用户角度出发,基于Android系统的停车场预约及共享私人车位,使用户可以从客户端查找空余停车位信息并及时调用导航,或利用空闲停车位使利益最大化,从而快速解决难以找到空余停车位、无法直接导航至目的地及私家车位空余浪费等切实问题。