《毕业设计(论文)基于Android智能手机的车辆监控和轨迹回放系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于Android智能手机的车辆监控和轨迹回放系统设计.doc(63页珍藏版)》请在三一办公上搜索。
1、LANZHOU UNIVERSITY OF TECHNOLOGY毕业设计题 目 基于Android智能手机的车辆监控和轨迹回放系统学生姓名 * 学 号 * 专业班级 软件工程三班 指导教师 * 学 院 软件学院 答辩日期 2015.6.14 第 页基于Android智能手机的车辆监控和轨迹回放系统The System of Based on The Android Smartphone Vehicle Monitoring and Trajectory Playback摘 要本文主要介绍了基于Android智能手机平台和GPS相关开发技术,结合高德地图API以及第三方云端服务器Bmob,设计并
2、实现的一个车辆实时监控和轨迹回放系统。同时,本文从定位系统的功能完整性出发,将服务器端和手机客户端的开发作为研究对象,完成了基于Bmob云端服务器的后台搭建;通过对整个系统的各个主要功能模块详细的分析与研究,该系统可以稳定地运行,保证了数据记录的准确性,基本上能满足用户相关的记录服务,管理等需求。另一方面,该系统对界面也进行了优化设计,体现出更加人性化的用户体验。 关键字:Android;GPS; Bmob;车辆监控;轨迹回放ABSTRACTThe paper mainly illustrated that an Android-based GPS track recurrence syste
3、m for Mobile phone was designed and implemented by using Android smartphone platform and the characteristics of GPS,and combining with High German Map. In this paper, starting from the integrity of the positioning system, the server and the mobile client development as the research object, to realiz
4、e the background based on Bmob server setup. By analyzing and studying the major function modules of the system carefully and testing them rigorously,the system can not only run smoothly and well , but ensure the accuracy of the data records, it can meet mobile users demand for record service in the
5、 main. Under the premise of meeting the requirement for service, an optimized design to the UI of the system was carried out. key words:Android;GPS ;Bmob;Vehicle monitoring;Track back目 录摘 要IABSTRACTII第1章 绪 论11.1 项目背景11.2 实际意义11.3 ANDROID系统简介11.4 BMOB服务器11.5 设计说明书的内容2第2章 可行性研究42.1系统目标42.2系统数据流分析42.3数
6、据字典42.4可行性分析52.4.1经济可行性52.4.2技术可行性52.4.3应用可行性5第3章 需求分析73.1 问题描述:73.2系统功能描述:73.2.1实时位置监控功能:73.2.2轨迹回放功能:73.2.3我的位置功能:73.2.4 GPS参数设置功能:73.2.5 用户信息设置功能:73.3系统流程图:83.4数据流程图:83.4 系统E-R图描述:10第4章 总体设计124.1 系统特点124.2 系统结构124.2.1 系统整体先进性124.2.2 系统的结构设计124.3系统的总体设计方案134.4 编程环境的选择134.4.1编程语言JAVA134.4.2开发工具ECLI
7、PSE144.5系统运行环境配置154.6系统功能模块设计15第5章 详细设计185.1 管理模块详细设计185.1.1登陆模块设计185.1.2我的位置模块设计185.1.3轨迹监控模块设计195.1.4轨迹回放模块设计195.1.5 GPS参数设置模块设计205.1.6 用户信息设置模块设计205.2数据库设计215.2.1系统物理结构设计215.2.2表设计215.2.3 表之间的关联设计23第6章 编码246.1编码描述246.2核心代码:24第7章 软件测试297.1 软件测试的目的297.2 软件测试的原则297.3 测试的研究和选择307.4 测试的过程及组织307.5 测试用例
8、及结果307.5.1 登录模块测试307.5.2我的位置模块307.5.3轨迹监控模块317.5.4轨迹回放模块317.5.5 GPS参数设置模块327.5.6用户信息管理模块32第8章 软件使用说明书348.1 登录注册系统348.2我的位置部分操作358.3轨迹监控部分操作358.4 轨迹回放部分操作378.5 GPS参数设置部分操作398.6 用户信息管理部分操作39设计总结42参考文献43外文原文44外文译文52致 谢59第1章 绪 论1.1 项目背景在移动4G网络飞速发展的今天,智能手机的广泛使用,已经使其成为了信息化世界的主流掌上移动设备.在各种五花八门的智能手机平台中,Andro
9、id系统通过其强大的开源性及平台移植性,已跃居成为世界上使用最广泛的手机平台之一.同时,在众多的Android应用中,各类车辆监控软件也逐渐走向成熟,更多的功能需求也随之而来.1.2 实际意义 通过高德地图官方提供的API,开发一款基于Android平台的车辆信息管理软件,以实现对车辆轨迹的实时定位和重现.用户交互方面,通过简单清新的界面设计,实现更加人性化的用户体验.1.3 Android系统简介 Android是一种以Linux为基础的开放性的源代码操作系统,主要使用于移动便携设备。 2012年2月数据显示,Android操作系统占据全球智能手机市场52.5%的巨大份额,中国市场占有率约为
10、68.4%。Android系统通过其强大的开源性及平台移植性,已跃居成为世界上使用最广泛的手机平台之一同时,本系统就是基于Android平台实现的。1.4 Bmob服务器 Bmob是一个在线的第三方云端服务器,可提供数据服务,文件服务,推送服务,扩展服务等.Android客户端可以通过该云服务器上传或者下载查询数据,使用起来更加简单方便.Bmob有如下几点的功能和优势:(在数据服务方面)(1)具有丰富的数据类型,使用更加自由; Bmob无模式(schema-free)对象存储,Bmob提供了丰富的数据类型,包括String (字符串)、Number(数值,包括整数和浮点数)、Boolean(布
11、尔值)、Date(日期)、File(文件)、Geopoint(地理位置)、Array(数组)、Object(对象)等。(2)数据操作更加简单方便;Bmob提供了一体化的可视化后台服务,使数据操作起来简单快捷,增删改查可以实现云端同步。同时,也可以进行离线下数据操作,足以灵活应对各种用户网络不稳定的情况,另外,Bmob还支持多表关联处理,实现数据的批量处理,同时还可以实现本地化数据缓存操作,使数据存取更简洁。(3)采用云端代码,实现更加灵活;对于一些比较复杂的软件应用,开发者更希望自己可以对业务逻辑的实现有一定的掌控,这一方面,Bmob云端代码考虑到了这种灵活性,提供另外让代码直接在Bmob云上
12、运行的功能效果,如果在云端更新了部分代码,其他的移动应用将会立即自动更新,这使得新功能的上线发布变得更加便捷。(4)无条件配合定时任务,操作更方便;有了云端代码的黄金搭档,Bmob能在给定时间点或给定时间间隔的基础上,自动执行云端代码。通过这样的功能我们可以实现类似于定时任务计算排行榜的效果,以及定时开通某个用户某项权限等需求,这使得操作简单方便。(5)无线的个性化定制,更有爱;Bmob的公有云用户可以任意享受的数据存储空间和API请求次数,这使得中小型的开发者可以更加放心使用该技术。此外,一旦有新的需求,专属的私有云服务足够满足用户个性化需求,同时还有更多的特级服务随时享用。(6)获得平台S
13、DK的支持,更省事Bmob提供全平台的SDK支持,仅仅需要一个云端数据库,便可轻松实现多平台数据共享,云端实时更新,各实时同步。1.5 设计说明书的内容本系统对基于Android智能手机的车辆监控和轨迹回放系统进行设计和开发,以实现对车辆轨迹信息的实时监控和分析。本软件的难点在于应用高德地图的API,第三方服务器Bmob的数据服务和用户管理的操作以及GPS的相关技术,同时忽略硬件接口,模拟数据文件实现实时位置和轨迹。该设计说明书包括共包含8章:第1章,绪论,即该章节,主要介绍了基于Android智能手机的车辆监控和轨迹回放系统的开发背景,实际意义,相关技术的介绍以及其该系统的设计原则;第2章,
14、可行性研究,主要介绍了对该系统的可行性进行了分析,主要包括系统的规模和目标,目前正在使用的系统,分析系统数据流,数据字典,可行性分析总结等;第3章,需求分析,主要描述了系统进行需求分析中所得到的总体结论,包括系统的需求分析、系统的功能性描述、系统运行流程分析、E-R图等等;第4章,总体设计,主要描述了系统软件结构、硬件配置方面的规划,分析系统的总体设计方案,系统的特点,对系统功能模块的设计,系统功能的描述,以及对编程环境的配置和选择;第5章,详细设计,本章包括对数据库的具体设计以及对各个模块的详细设计;第6章,编码,介绍了编码方面的相关知识;第7章,软件测试,本章主要对本系统的功能进行测试,包
15、括软件测试的原则、测试过程的注意事项以及组织、测试用例的过程及测试结果等;第8章,软件使用说明书,本章介绍了如何使用本软件,以及如何使用户能更好、更快捷地使用该系统。此外,还包括设计总结,参考文献和致谢等内容。第2章 可行性研究2.1系统目标 系统基本目标有以下几个: (1)对每一个车辆的当前位置实现准确定位; (2)对车辆的轨迹信息进行实时的定位和回放; (3)对登陆车辆的GPS信息进行任意设置; (4)对车辆的登陆密码等基本信息进行管理。2.2系统数据流分析在经过仔细调查多方用户需求的基础上,得到该系统的数据流程图。如下图2-1所示。图2-1 系统数据流程图2.3数据字典通过对本系统的数据
16、流程的仔细分析,设计了数据项和数据结构如下:(系统采用第三方服务器Bmob进行数据存储管理)(1) 用户(车辆)基本信息(一个用户即一辆车,一辆车一个GPS的ID)记录id 描述=objectId,STRING型,主键(第三方提供)当前车辆名称(登录名称)描述=车辆名称username,STRING型当前车辆名称(密码)描述=车辆登陆密码password,STRING型当前位置描述=车辆位置信息,currentGeoPoint,BmobGeoPoint型, (2) 当前位置信息记录id描述=objectId,STRING型,主键(第三方提供)车辆id 描述=parentId,用来标示车辆的唯一
17、性,STRING型,外键当前位置描述=车辆当前位置信息bmobGeoPoint,BmobGeoPoint型创建时间=创建时间,createAt,Date型更新时间=更新时间,updateAt,Date型(3) 车辆轨迹信息记录id描述=objectId,STRING型,主键(第三方提供)所有行程轨迹点描述=车辆的轨迹信息.latLngs,ArrayList型车辆id 描述=parentId,用来标示车辆的唯一性,STRING型,外键创建时间=创建时间,createAt,Date型更新时间=更新时间,updateAt,Date型2.4可行性分析2.4.1经济可行性对于一个完全免费平台的软件,开发
18、周期和开发成本都不会太高,况且是面向个人,更不会产生企业级应用的成本预算,所以,在开发的过程中,充分的考虑到该课题的特性,我们需要拥有一台可以使用GPS定位,并且是具有稳定的Android系统的网络连接正常的智能手机,在硬件方面,本人已经拥有一部可用的手机,在其它方面,应该不会产生太多硬件设备的费用。 2.4.2技术可行性 该系统用到了目前市场上比较流行的手机操作系统-Android,以及高德地图。由于本人并没有Android开发方面的经验,更没有系统地学习过相关方面的知识,所以要完成本系统就需要从零开始学习Android,不过比较安慰的是,在掌握了丰富的JAVA 知识的基础上,学习Andro
19、id的过程中并没有想象中的那么恐怖,因为Google提供了在eclipse上面的ADK插件,在一步步完善课题的同时,同时参照到了高德地图提供的详细的开发说明文档,一点一点攻克,慢慢完善课题也就没有那么困难,所以,在理论上是可行的。2.4.3应用可行性首先分析这个系统的用户,主要是在车辆轨迹管理方面有一定需求的用户。系统的以APP的形式展示,界面友好简单;用户可直接通过联网下载安装后使用该系统即可,其使用方式是用户得心应手的。所以在操作上来说基本可行。结论意见:综上分析上可以看到,对于个人开发该小型系统具有很好的经济、技术、应用性。同时通过该系统的开发可以锻炼我的专业能力,也使我的Java理论知
20、识得到质的升华。第3章 需求分析3.1 问题描述: (1)本系统需设计一款可以应用于Android 智能手机的车辆实时监控和轨迹回放的应用程序。所以,硬件上需要一台具有Android系统的手持设备。(2)系统要求在运行中能实时记录车辆行驶过程中的GPS经纬点信息,同时可以实现任意时刻轨迹的回放和相关GPS信息的设置。在用户信息方面,系统要求实现对进本信息进行修改。(3)最后,为了提高程序的可用性,在UI设计方面需要提高软件的交互性,体现出更加人性化的用户体验。 3.2系统功能描述:3.2.1实时位置监控功能:(1)记录实时的GPS经纬点数据;(2)轨迹点连线,形成轨迹;(3)存储轨迹信息;3.
21、2.2轨迹回放功能:(1)车辆轨迹选择性回放;(2)导出车辆轨迹图片;(3)车辆轨迹选择性删除;3.2.3我的位置功能:(1)登陆成功即定位;(2)手动定位当前位置;3.2.4 GPS参数设置功能:(1)轨迹播放模式的设置;(2)定位显示信息的设置;3.2.5 用户信息设置功能: (1) 修改用户登陆密码; (2) 修改用户基本登陆头像;3.3系统流程图:进入系统之后用户可以进行车辆轨迹监控管理,车辆轨迹回放管理,GPS参数设置管理,我的位置(当前位置)管理,用户信息管理.该系统的流程图如图3-1所示。 图3-1 系统流程图3.4数据流程图:在仔细研究系统数据流程的基础上,得到系统所要处理数据
22、的流程。数据流程图如图3-2所示:图3-2 系统数据流程图在对如上数据流程图进一步细化后,得到各个子模块的数据流程图如下所示。登录模块和我的位置模块,如图3-3所示:图3-3 登录模块和我的位置模块数据流程图 轨迹监控模块,如图3-4所示: 图3-4 轨迹监控模块数据流程图轨迹回放模块,如图3-5所示: 图3-5 轨迹回放模块数据流程图用户信息修改模块,如图3-6所示:图3-6 用户信息修改模块数据流程图3.4 系统E-R图描述:系统实体及其属性如下图所示。 图3-7 用户实体及属性图3-8 位置实体及属性图3-9 轨迹实体及属性图3-10 各实体关系ER图第4章 总体设计4.1 系统特点(1
23、)本系统通过对UI的巧妙设计,具备人性化的用户体验;通过MD5算法对用户密码加以处理,一定程度上提高了系统的安全性。(2)可以完全通过移动设备客户端登录系统,支持多平台运行,维护起来更加方便。(3)各功能模块独立性强,可以根据需要任意组合。(4)支持所有的Android操作系统。4.2 系统结构4.2.1 系统整体先进性对于Android系统的软件的优劣,国内市场基本达成一定的共识,表现为如下几点:(1)开放性 谈到优势方面,首谈Android平台的开放性,开放的操作平台允许任何任意异动终端厂商随时加入到Android的大家庭中来。 (2)实施独立性 在曾经的一段时间,尤其是在欧美等地区,各类
24、手机应用都受到运营商的各种制约,使用的功能,接入的网络,无时无刻不受到运营商的肆意控制。自从iPhone系列上市,用户便可以更加方便地连接网络,”霸道的”运营商的制约瞬间减少。(3)丰富的硬件选择这方面依旧与Android平台的开放性息息相关,由于Android平台的开放性,更多的相关厂商会推出五花八门,功能各异的多种产品。尽管功能上存在各种差异,但依旧不会影响到数据同步、甚至于软件的兼容方面的特性。 4.2.2 系统的结构设计本系统采用传统的C/S结构,即客户机和服务器端结构,其核心的工作流程是将复杂的计算机应用任务巧妙的分解成多个子任务,由多台计算机分工协同完成,即采用”功能分布式”原则,
25、客户端在完成数据处理,数据表示以及用户接口功能的同时,服务器端也要完成数据库管理系统的核心任务;C/S结构的优点:能全方位发挥客户端PC机的处理能力,很多复杂的工作可以在客户端简单处理以后再转交给服务器处理,即客户端响应速度相对来说比较快,具体表现为以下两点:(1)应用服务器所要运行数据负荷相对较轻;(2)数据的存储管理功能会更加透明.但是传统的C/S体系结构存在一定的缺陷:用户在使用前需要下载并安装好相应的客户端程序才能访问到服务器,这样的话,不但给用户造成了相应的不便,而且容易导致客户端负载过重,影响整个系统的性能,得不偿失! 系统结构图如图4-1所示: API,数据库操作 数据采集 AP
26、P. Service Service 监控终端 Client图4-1系统结构图4.3系统的总体设计方案本系统针对每个登陆该系统的车辆的轨迹信息进行有效管理,在提高用户体验度的同时,可以有效地提供更全方位的服务:(1)登陆注册模块: 在用户首次登陆系统后,如果没有退出当前账号,在用户下次进入系统的同时,提供了自动登陆的功能,方便用户操作,同时,在密码的安全性方面,使用的MD5加密算法,一定程度上提高了系统的安全性.(2)我的位置模块: 在用户成功登陆系统后,进入主页面的同时,显示当前登陆车辆的位置信息, 方便用户的后续操作.(3)轨迹回放模块: 在用户进行轨迹回放操作完成后,增加了导出轨迹图片的
27、功能,以当前时间信息命名图片,为用户后续查看轨迹信息提供了相当大的方便.(4)用户信息管理模块: 本系统提供了更换用户登陆头像的功能,大大增加了系统的灵活度和用户体验度.4.4 编程环境的选择4.4.1编程语言JAVAJAVA的开发环境有不同的版本,如sun公司的JAVA Developers Kit, 简称 JDK。后来微软公司推出了支持JAVA规范的Microsoft Visual J+ JAVA开发环境,简称 VJ+。 JAVA的特点(1)平台无关性平台无关性是指JAVA能运行于不同的平台。JAVA引进虚拟机原理,并运行于虚拟机,实现不同平台的JAVA接口之间。使用JAVA编写的程序能在
28、世界范围内共享。JAVA的数据类型与机器无关,JAVA虚拟机(JAVA Virtual Machine)是建立在硬件和操作系统之上,实现JAVA二进制代码的解释执行功能,提供于不同平台的接口的。 (2)安全性 JAVA的编程类似C+,学习过C+的读者将很快掌握JAVA的精髓。JAVA舍弃了C+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。JAVA对程序提供了安全管理器,防止程序的非法访问。 (3)面向对象JAVA 吸取了C+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。在 JAVA 中,类的继承关系是单一的非多
29、重的,一个子类只有一个父类,子类的父类又有一个父类。JAVA 提供的 Object 类及其子类的继承关系如同一棵倒立的树形,根类为 Object 类, Object 类功能强大,经常会使用到它及其它派生的子类。(4)分布式JAVA建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。(5)键壮性JAVA致力于检查程序在编译和运行时的错误。JAVA自已操纵内存减少了内存出错的可能性。JAVA还实现了真数组,避免了覆盖数据的可能。JAVA提供:Null指针检测、数组边界检测、异常出口、Byte code校验。J
30、AVA去掉了以下几个C和C+功能:指针运算; 结构; typedefs; #define; 需要释放内存;这将减少了平常出错的50%,而且,JAVA很小,整个解释器只需215K的RAM。面向对象:JAVA实现了C+的基本面向对象技术并有一些增强,(为了语言简单,删除了一些功能)。JAVA处理数据方式和用对象接口处理对象数据方式一样。4.4.2开发工具EclipseEclipse是一款可扩展的开放性源代码集成开发环境。IDE经常将其应用范围限定在“开发、构建和调试”的周期之中。Eclipse允许在同一集成开发环境中集成来自不同的供应商的工具,同时实现工具之间的互操作性,从而明显改变项目的工作流程
31、,使开发者可以更加专注在实际的嵌入式醒目的目标上。 Eclipse开发框架的这种灵活性来源于其丰富的扩展点。它们是在XML中定义了已知的接口,并以此充当插件的耦合点。同时该扩展点的范围从常规表述过滤器中的简单字符串,到每一个可能的JAVA类的描述。任意的Eclipse插件定义的扩展点都可以被其它的插件使用,反之,任意的Eclipse插件也可以根据其它插件定义的扩展点的规则。除了了解接口外,插件不知道它们通过扩展点提供的服务将如何被使用。 利用Eclipse,我们可以将高级设计与低级开发工具巧妙的结合在一起。事实上,由于Eclipse并不了解开发语言,所以无论JAVA语言调试器、C/C+调试器还
32、是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。 Eclipse的最大特点是它能接受由JAVA开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。4.5系统运行环境配置操作系统:Android操作系统;服务器:Bmob服务器;网络环境:具有较好的网络连接;硬件配置:具有Android操作系统的智能手机。4.6系统功能模块设计本系统可划分为五大个功能模块:我的位置模块,轨迹监控模块,轨迹回放模块,GPS参数设置模块,用户信息管理模
33、块。整个系统的功能模块,如图4-2所示:图4-2 系统功能模块图我的位置模块:显示当前用户的位置信息,同时也可以实现手动定位。轨迹监控模块:对每个车辆的行程进行监控并记录(模拟实现)。轨迹回放模块:用于查看某个车辆的某个时间段的轨迹信息,包括途经信息,同时可以实现对车辆轨迹路线进行截图保存。GPS参数设置模块:根据用户需求,对车辆的的轨迹播放模式和位置信息模式进行设置。用户信息管理模块:根据用户需求,对用户的登录密码和登陆头像进行设置。在系统功能分析的基础上,得到以下的功能模块图:我的位置模块:显示当前用户的位置信息,同时也可以实现手动定位。 图4-3 我的位置模块图轨迹监控模块:对每个车辆的
34、行程进行监控并记录,实现轨迹数据的增加功能(模拟实现)。 图4-4 轨迹监控模块图轨迹回放模块:用于查看某个车辆的某个时间段的轨迹信息,包括途经信息,同时可以实现对车辆轨迹路线进行截图保存,也可以选择删除轨迹信息。图4-5 轨迹回放模块图GPS参数设置模块:根据用户需求,对车辆的的轨迹播放模式和位置信息模式进行设置。图4-6 GPS参数设置模块图用户信息管理模块:根据用户需求,对用户的登录密码和登陆头像进行修改设置。图4-7 用户信息管理模块图第5章 详细设计5.1 管理模块详细设计5.1.1登陆模块设计用户正确登陆系统后进行操作。程序流程图如图5-1所示。图5-1 登陆模块程序流程图5.1.
35、2我的位置模块设计用户登录系统后:(1)显示当前位置信息;(2)手动定位当前位置并显示位置信息;程序流程图如图5-2所示。图5-2 我的位置模块程序流程图5.1.3轨迹监控模块设计用户正常登录后:对登陆车辆轨迹进行监控(模拟),上传轨迹信息到数据库;程序流程图如图5-3所示。图5-3 轨迹监控模块程序流程图5.1.4轨迹回放模块设计用户正常登录后:(1)对该登陆用户的轨迹信息进行选择性回放;(2)导出轨迹图片;程序流程图如图5-4所示。图5-4 轨迹回放模块程序流程图5.1.5 GPS参数设置模块设计对登陆用户的轨迹播放模式和位置信息进行设置,程序流程图如图5-5所示。图5-5 GPS参数设置
36、模块程序流程图5.1.6 用户信息设置模块设计 (1)修改登录用户的密码; (2)修改登陆用户的头像.程序流程图如图5-6所示。图5-6 用户信息修改模块程序流程图5.2数据库设计5.2.1系统物理结构设计根据该系统所需额硬件设备和数据库平台系统的需求,需要对数据库系统的物理存储的结构进行有效的规划,完成估计数据库的大小,各主要部分的访问频度。同时,需要确定数据文件的命名规则,日志文件的命名规则。数据文件和日志文件的物理存放位置的设置,如果需要多个存储设备,则需要规划数据文件的组织方式。系统内存使用配置,一般来说,数据库系统会自动维护系统内存,但有时为了某些性能问题,可以根据需要对数据库的内存
37、管理进行另行配置。5.2.2表设计根据前面的数据字典的设计,细化的数据库表的设计。表的设计包括以下内容:表名(中英文);字段名;字段数据类型;字段是否为空;字段的长度;备注,对字段的解释性说明:主键、外键、是否自动增一、是否为索引、是否唯一、是否进行数据检查等。用户(车辆)信息表:表5-7 用户(车辆)信息表字段名数据类型是否为空长度备注objectIdSTRING否主键,唯一usernameSTRING否8passwordSTRING否18currentGeoPointBmobGeoPoint否当前位置信息表:表5-8 当前位置信息表字段名数据类型是否为空长度备注objectIdSTRING
38、否主键,唯一parentIdSTRING否外键bmobGeoPointBmobGeoPoint否createAtDate否updateAtDate否轨迹信息表:表5-9 轨迹信息表字段名数据类型是否为空长度备注objectIdSTRING否主键,唯一parentIdSTRING否外键latLngsArrayList否createAtDate否updateAtDate否5.2.3 表之间的关联设计为了保证数据的完整性,需要对表之间相互的数据进行约束,主要是通过外键来实现数据增删时的数据完备。关系图如图5-10 所示。图5-10 表之间的关系图第6章 编码6.1编码描述编码,顾名思义是将信息从一种
39、表现形式转换为另一种表现形式的过程,也将之称为计算机编程语言的代码简称编码,编码过程中,可以用预先规定好的方法将文字、数字等对象编成与之对应的数码格式,或者将信息、数据等对象按照一定的规则转换成与之对应的电脉冲信号。另一方方面,编码在电子计算机、遥控和通讯设备等方面也得到广泛的使用。总之,编码是信息从一种形式或格式转换为另一种形式的过程。解码,是编码的逆过程。在计算机硬件领域中,编码(coding)的定义是指用一定的代码来表示各组需求的数据资料,使之成为具有一定价值意义的计算机可以进行处理和分析的信息。同时代码可以用来作为事物的记号,它的表现形式有很多种,其中它可以用数字、特殊的符号、字母、或
40、之间的任意组合来表示。将数据转换为与之对应的代码或编码字符表现,并能将之译为原数据形式的过程,是计算机形成具体指令的过程,也是我们程序设计中的不可或缺的一部分。例如,我们平常在地图自动制图中,按一定的规则将某些数字与一定的字母表示我们想要展现的地图内容的过程中,后期通过编码,使计算机能识别地图的各地理要素,这便是一个形象的编码过程。6.2核心代码:本系统部分核心代码如下:用户登陆模块: public void onSuccess() / 获取当前的用户GlobalValue.vehicleEntity=BmobUser.getCurrentUser(LoginActivity.this,Veh
41、icleEntity.class); / 做一个本地密码的存放SharePreferenceUtilsharePreferenceUtil=SharePreferenceUtil.newInstance(LoginActivity.this); sharePreferenceUtil.putString(GlobalValue.vehicleEntity.getObjectId() + password, MD5.makeKeyByMD5(passwordValue); / 登录成功以后 上传一个坐标表示当前的坐标 uploadCurrentPosition();当前位置模块: / 请求数据
42、BmobQuery bmobQuery = new BmobQuery(); bmobQuery.addWhereEqualTo(parentId, GlobalValue.vehicleEntity.getObjectId(); bmobQuery.findObjects(this, new FindListener() Override public void onSuccess(List list) GlobalValue.vehicleEntity.setCurrentGeoPoint(list.get(0).getBmobGeoPoint(); / 获取定位坐标 LatLng lat
43、Lng = new LatLng(GlobalValue.vehicleEntity.getCurrentGeoPoint().getLatitude(), GlobalValue.vehicleEntity.getCurrentGeoPoint().getLongitude(); / 移动当前的点到屏幕中央 CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(new CameraPosition(latLng, 16, 0, 0); aMap.moveCamera(cameraUpdate); / 反编地理编码 GeocodeSearch geocodeSearch = new GeocodeSearch(MyActivity.this); geocodeSearch.setOnGeocodeSearchListener(MyActivity.this); RegeocodeQuery regeocodeQuery = new RegeocodeQuery