基于Android的室内地图设计(程序仿真+开题报告+任务书+说明书+演示文稿)_第1页
基于Android的室内地图设计(程序仿真+开题报告+任务书+说明书+演示文稿)_第2页
基于Android的室内地图设计(程序仿真+开题报告+任务书+说明书+演示文稿)_第3页
基于Android的室内地图设计(程序仿真+开题报告+任务书+说明书+演示文稿)_第4页
基于Android的室内地图设计(程序仿真+开题报告+任务书+说明书+演示文稿)_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I摘要现代社会随着用地紧张,建筑物越来越高,内部结构越来越复杂。伴随着人们的室内活动的日益增多,室内地图应运而生。室内地图的出现,让人们可以轻松掌握所处建筑的全部情况,避免了因走错路而浪费时间,也不至于因商场的复杂而迷路。Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前Android设备的市场份额位居全球首位,是最受欢迎的智能手机平台。高德地图API功能强大,免费开源,是目前国内开发者常用的API之一。所以为了能方便地获取高德公司提供的基本地图,且能适用于大多数人的移动设备。本设计使用Eclipse和AndroidSDK开发工具包加上Java语言的支持,在高德API基础之上进行开发。本设计的目的在于为使用移动设备(如手机、平板电脑等)的用户提供详细的室内地图,为其规划出行线路,方便用户出行。它可以将大型商场、火车站、博物馆等大型室内场所的内部精确位置信息和店铺信息直观地在用户的移动设备上展现出来,通过流畅的交互体验,为用户提供室内地图、线路规划等服务。同时支持楼层切换、地图缩放和方向识别等功能,会在很大程度上方便用户的出行,避免由于环境不熟悉导致浪费时间过多。关键词:室内地图Android高德APIEclipse线路规划IIAbstractInthemodernsociety,alongwiththeplotoflandlessandless.buildingsheightisbecominghigherandhigher,andtheinternalstructureisbecomingmoreandmorecomplex.Peoplecaneasilymasterthewholesituationofbuildings,duetotheinventionoftheindoormaps.Avoidthephenomenonofwasteoftimebecauseofthewrongwayorlostbecauseofthemallcomplex.AndroidisaLinux-basedopensourceoperatingsystem,primarilyforuseinportabledevices.NowthedevicesofAndroidshareintheworldsfirstinthemarket.Androidisoneofthemostpopularsmartphoneplatform.GaodemapsAPIispowerful,free,opensource,isoneofthecurrentdomesticdeveloperscommonlyusedAPI.Soinordertoeasilyobtaingoldcompaniesprovidebasicmap,andcanapplytomostpeoplesmobiledevices.ThisdesignusingtheEclipsewiththeAndroidSDKdevelopmentkitandthesupportoftheJavalanguage,basedongoldAPIfordevelopment.Thepurposeofthisdesignistousemobiledevices(suchasmobilephone,tablet,etc.)ofuserstoprovideadetailedmapofindoor,foritsplanningtravelroutes,convenientfortheuser.Itmaybeinsideshoppingmalls,trainstations,museumsandotherlargeindoorspacespreciselocationinformationandstoreinformationvisuallytoshowupontheusersmobiledevice,throughasmoothinteractiveexperience,toprovideuserswithanindoormap,routeplanningandotherservices.Andsupportthefloorswitch,mapscaleanddirectionofrecognition,andotherfunctions,willtraveltoagreatextent,convenientfortheuser,toavoidwastingtoomuchtimeduetotheenvironmentarenotfamiliarwithkeywords:IndoormapAndroidAmapAPIEclipserouteplanning目录第一章绪论.11.1项目背景及意义.11.2国内外研究与发展现状.21.3论文组织结构.3第二章开发平台选择和环境搭建.42.1Android平台选择.42.1.1Android平台特性.42.1.2Android系统结构.52.1.3Android应用程序框架.52.2开发环境搭建.9第三章地图模型及路径规划算法.113.1电子地图概述.113.1.1电子地图构成.113.1.2电子地图分类.123.1.3电子地图的特点.133.1.4电子地图查询.133.2最短路径规划算法.143.2.1Dijkstra算法.153.2.2A*算法.153.2.3A*算法和Dijkstra算法比较.16第四章室内地图和路径规划系统设计.184.1系统的需求分析.184.1.1需求分析.184.1.2系统概述.184.2系统的设计.194.2.1总体设计.194.2.2室内地图设计.214.2.3路径规划设计.23第五章室内地图和路径规划系统的实现.275.1地图API.275.1.1申请高德地图API.275.1.2添加API到Android工程.275.2室内地图功能实现.285.3路径规划功能实现.295.4本章小结.31第六章总结与展望.336.1总结.336.2展望.34参考文献.35致谢.37附录.381第一章绪论本章主要介绍了室内地图项目的研究背景以及意义,然后分析了国内外在室内地图领域的研究与发展现状,对该领域的研究进行了梳理,最后从整体上介绍了论文的结构。1.1项目背景及意义近几年,随着社会的进步和发展,人们的生活水平日益提高,对地理信息的需求在衣食住行等各个方面也在不断的增长。而随着手持移动设备的普及,电子地图在访问上的便利性明显优于传统的纸质地图,通过手持移动设备可以随时随地访问电子地图。关于电子地图的各种探索和研究,相关地图系统的开发层出不穷。据研究表明人类信息大约有80%以上都与空间位置有关,并且平均有80%90%的时间是在室内度过的,由此可见用来展现室内空间位置信息的室内地图十分重要。室内地图一般指大型室内建筑的内部地图,与室外地图相比,更注重小区域、大比例尺、高精度和精细化的内部元素展现。室内地图作为室内位置服务的基础,其实早已存在,大型建筑内部为方便访客寻路,通常在重要通道张贴建筑各层概况以及本层地图。在室内设计领域早已使用2维、3维等形式展现室内空间。在计算机、手机屏幕上显示数字室内地图只是近几年才出现,时间不长进展很大,但更多关注的是诸如导航等应用的研究。室内地图缺少从地图学角度出发的理论、设计等研究。现如今,室外地图技术已经相当成熟,渗透到人们生活的方方面面,随时随地为所有人和事物提供个性化信息服务。但是对于大部分时间置身于日渐复杂的建筑物中人们来说,室外电子地图已经不能满足他们的需求,这时室内地图应运而生。比如置身于一个大型商场中,必须在有限的时间内购买指定的商品,直接去找商场的平面图和商品的位置需要浪费一定的时间,如果手机上有一款室内电子地图,甚至可以在路上直接找到要买的商品的位置,规划出购买商品的最短路径,将极大的方便你的出行。室内地图可以将大型建筑物的平面图在手持移动设备上展现出来,从而使建筑物内使用手持移动设备的用户可以迅速定位到指定的商家、银行、卫生问、休息区等,疏通了人、位置、商家三者之间的关系。用户还可以随时了解建筑物内的各种消息,并且分类搜索感兴趣的商品。为用户对未知建筑物的认识提供了极大的便利。因此,室内地图的研究十分重要,它的研究与实现不仅具有关键的学术价值,而且具有巨大的实际应用前景。21.2国内外研究与发展现状目前,室内地图研究处于领先地位的是国外,而中国涉足此领域的公司和科研机构很少。在国外,在2011年无线协会年会上,诺基亚公司发布了DestinationMaps服务,推出该服务主要为用户提供室内路线、室内方向和室内导航等信息。Google在2011年11月在移动设备中增加了室内地图的相关服务,超过1万座大型建筑的室内地图被该应用覆盖。同一年,现在已经覆盖主要欧洲国家的必应室内地图由微软发布。在国内,2012年5月百度PC端上线了精细化位置信息的室内导航地图。高德于同年9月份发布了安卓手机可以使用的室内地图功能。统计资料显示,全世界的人们有8790的时间在室内活动,由此带来的位置信息服务、室内定位、室内导航一定会有庞大需求。也必定有广阔的前景和空间在等待着刚兴起的中国市场。目前市场认可度较高的包括百度、高德、上海图聚等科技巨头,在精准的信息推送,按需投放的商业广告,所见即所得的优惠折扣等领域都可以在室内实现。一些有想法的商场已经开始行动了,也许过不了多久,人们在逛商场的时候就能切身体会到室内定位导航带来的便利和实惠。据了解,目前已经有一些商场尝试通过免费的无线网络提供室内导航服务,用户连接商场WIFI后可以看到室内地图,商户位置和打折信息。如果加入商户或折扣信息,介入消费环节,就可以构建地图O2O闭环。除了商超,大型场馆也不甘寂寞。首先是机场这个向来以旅客服务至上的行业。今年,有的国际机场率先行动,不但将室内定位技术应用于车辆追踪、资产管理、客流统计等方面,还将在自己的官方APP增加“机场指引”功能,包括室内定位和地图导航,以方便旅客查找登机口、值机柜台,和朋友共享位置,还能知道行李在哪儿、车停哪儿了。全国多家机场已与上海图聚取得联系,希望共同优化自己机场的室内定位及导航功能。室内地图数据是制作室内地图的基础。数据主要来自网络、线下搜集、用户提供、商家提供等途径。国内最大的室内地图数据提供商图渊公司最初的数据通过扫街获得,之后很多大型建筑如商场等看到媒体效应,主动联系提供数据。再如Google,允许用户向GoogleMaps添加各种建筑的室内楼层规划图。过程相对简单,只需上传“楼层的规划、蓝图或指南的照片”,再与GoogleMaps里的卫星图片相连。Google由此从一大批感兴趣的用户处免费得到室内地图资料。“点道”也通过用户贡献内容、纠错、上报的功能,希望有效、快捷地更新室内地图数据,也希望借助于“纠错”功能借助用户力量提高数据的准确性。3综上我们可以看到,室内地图的未来会越来越好。随着室内位置服务提供商与商家合作的不断深化,商家的想法和思路已经在跟着技术逐渐转变,寻求数字化经营之路。室内地图就如同一个刚出生的婴儿,但它的前途却是注定非凡。1.3论文组织结构本论文通过对室内地图的研究现状进行分析和总结,在室内地图服务系统中主要研究了室内地图的调用与显示以及路径规划等关键技术。本论文的章节安排如下:第一章为绪论,主要介绍室内地图的研究背景和研究意义,国内外室内地图研究现状。第二章主要阐述了两方面内容。一是Android的平台特性、系统架构以及应用程序框架;二是是Android开发环境搭建方法。第三章是地图模型及路径规划算法。这一章主要介绍了电子地图的相关知识,同时介绍了设计中用到的路径规划算法以及室内电子地图设计和制作的特点。第四章是对室内地图系统设计。这一章首先进行系统分析,然后针对分析进行系统的设计,主要包括对室内地图模块和路径规划模块的设计,包括界面设计和流程设计。第五章是室内地图和路径规划系统的实现。本章主要是在上一章进行分析和设计的基础之上进行程序开发,编写代码。第六章为总结与展望。对全文的工作内容进行描述与总结并指出需要完善的地方和方法,对系统后续开发进行展望。4第二章开发平台选择和环境搭建本章主要介绍了两方面内容。首先阐明的是本设计选择Android平台的原因,介绍了包括Android的平台特性、系统架构以及应用程序框架等知识在内的一些特点。其次介绍的是Android开发环境搭建方法,详细的讲解了各个软件的安装及配置。2.1Android平台选择Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。它由谷歌公司和开放手持设备联盟开发和领导。除了开放手持设备联盟之外,Android还拥有许多由全球各地开发者组成的开源社区来专门负责开发Android应用程序和第三方Android操作系统来延长和扩展Android的功能和性能。2011年8月,Android操作系统在全球智能手机操作系统的市场份额就已达48%,成为全球第一大智能手机操作系统,跃居全球最受欢迎的智能手机平台。1由此可见,Android已经成为了当前智能手机行业的主流。此外,android还有以下几个优越性:1、从开发工具到底层源代码实现了真正意义上的开放;2、降低了软件开发的费用,促进了免费应用软件的发展;3、在android平台下运行的应用是完全平等的;4、应用无界限,可任意结合应用创造新的应用;5、获得多运营商服务网络支持,设备的可选性很强;6、营销战略优势明显,能够从群体(消费者)开始考虑再到服务提供商(企业)逐步占领市场。而microsoft技术更新有点迟钝,iPhone产品单一,wp市场占有率低,可以说android的应用发展前景很好,也会为交通信息服务系统的发展添砖加瓦。2.1.1Android平台特性Android作为Google公司战略的重要组成部分,由应用程序、应用程序框架、android运行时、android程序库及Linux内核五个部分组成。主要有以下几个特性:51、应用程序框架支持组建的重用及替换,在安全性限制内,一个应用程序不仅能发布自己的功能模块而且能使用其他应用程序发布的功能模块;一个应用程序都可以从多个应用程序中选择多个功能模块进行合并形成自己的功能模块。2、Dalvilk虚拟机的引进加快处理速度并优化了移动设备。Android应用程序是由java语言编写的,却不是在Java虚拟机上执行的,而是将编译的类文件转换成.dex文件在Dalvik虚拟机上执行的,处理速度更快。3、内部集成浏览器基于开源的WebKit引擎。4、图形库功能变得更加全面,主要是指2D和3D图形库,强大的图形效果推动了游戏开发的进程。5、采用SQLite轻型的结构化数据存储模式,简单、快捷。6、多媒体支持的文件格式比较多,包括音频、视频以及静态文件格式。22.1.2Android系统结构Android系统架构采用了软件分层的思想,具体分为五个部分,分别是:应用程序层、应用程序框架层、android运行时、android程序库层以及Linux内核层。3应用程序层:android平台下的所有应用程序都是在JAVA语言的基础上实现的,核心的应用程序包括Email客户端、SMS程序、通讯录、地图、浏览器等,任何一个应用程序在安全性限制内都可以发布自己的功能模块或者使用其他应用程序发布的功能模块。应用框架层:应用程序框架是android开发的基础,是用来简化应用软件的重用,隐藏在所有应用程序后面的一系列服务与系统,主要包括视图系统(Views),内容提供器(Contentproviders),资源管理器(ResourceManager),通知管理器(NotifcationManager),活动管理器(ActivityManager),窗口管理器(WindowManager),电话管理器(TelephoneManager),包管理器(PackageManager)等九个组成部分。Android运行时:anndroid是在JAVA语言的基础上进行开发的,但这不意味着android平台是利用J2ME来执行JAVA程序的,而是将编译的类文件转换成.dex文件并利用android的运行时来执行,该部分主要由核心库和Dalvik虚拟机组成。6Android程序库层:该层为应用程序框架开发者提供服务与支撑,包含了一些能被android系统中不同组件使用的C/C+库,主要库函数有以下几个:系统C库、媒体库、SurfaceManager、LibWebCore、SGL、FreeType、SQLite。Linux内核层:Android的核心系统服务是在Linux2.6版的内核上建立起来的;Linux系统也为android的核心服务提供了硬件抽象层,协助android完成内存管理、进程管理、网络以及其他操作系统服务工作。2.1.3Android应用程序框架Android应用程序的主要特点就是一个应用程序可以利用其他应用程序的功能模块并且不需要将其他应用程序的代码复制到该程序当中,只是启动该程序模块即可。android应用程序没用单一的入口点,主要由四个重要的组件构成:活动(Activity)、服务(Service)、广播接收者(Broadcastreceivers)、内容提供者(Contentproviders)。1、ActivityActivity是android的核心类,也是使用次数最多的一个组件。每一个activity为用户提供了一个可视化的界面,在这个界面里面你可以添加各种资源文件,比如button、drawbles、text、list等。activity的多少主要根据开发者设计所需,一个应用程序可以只包含一个Activity,也可以包含多个activtity,这些activity之间的依赖关系取决于应用程序之间的进程调度或者说是业务逻辑关系。系统中的activity是通过activity栈进行管理的,当前活动的activity处于栈顶,非当前活动的Activity被压入处于活动activity的下面并且等待是否可能被恢复为活动状态。比如说一个处于活动状态的activity被放置于activity栈顶,之后一个新的activity被启动了,则新的activity处于活动状态并位于activity栈的栈顶位置,原来处于活动状态的activity则分配到栈顶位置的下边,也只有当这个新的activity退栈时,原来的activity才有可能处于活动状态。Activity有7个生命周期,程序是的入口点在onCreate()方法中,具体可参考Activity生命周期图,如图2.1所示。onCreate:该方法是程序的入口点,在第一次创建activity时被系统自动调用,该方法的主要目的就是完成一些基础性数据的初始化,比如说视图、组件和数据。onRestart:该方法是在重新启动activity时调用,系统会将内存中失去焦点状态的activity激活。7onStart:该方法是在activity处于屏幕上可见时调用,使得原activity处于可见但不可交互的状态。onResume:该方法是在activity与用户交互时被调用,使得原activity处于能交互的状态。onPause:该方法是在激活前一个处于活动状态的activity时调用,主要是将一些未保存的修改数据变为持久性数据、停止占用CPU的事件,使得原activity处于可见但不可交互的状态。onStop:该方法是当前的activity已不再对用户可见或者失去焦点时调用,一般发生在恢复前一个activity或者启动一个新的activity情况下,使得原activity处于不可见的状态。onDestroy:该方法是在activity被销毁时调用。一般是在activity被finish()时或者系统需要节约空间的情况下才会发生这种事。8此外,在Activity的生命周期中有四种非常重要的生命状态:活动、暂停、停9止、销毁。活动状态是指能被用户看见并与用户交互的活跃状态;暂停状态是指能10被用户看见但又不能与用户交互的状态;停止状态是指被新的activity覆盖了并处于11不可见和失去焦点的状态;销毁状态是指所占的内存空间被系统回收或者没有被系12统启动的状态。其中,从活动状态到暂停状态可能是因为处于栈顶的activity被13Dialog或者是透明的activity覆盖并失去了焦点,处于被用户看见但又不能与用户交互的状态;而从暂停状态到活动状态可能是因为被覆盖的activity返回到栈顶,处于能被用户看见并与用户交互的活跃状态;另外,从活动状态到停止状态可能是因为栈顶的activity被一个新的activity覆盖,处于不能被用户看见的状态;而从停止状态到活动状态可能是因为原来的activity返回到栈顶位置,被重新激活了并处于用启动ActivityonCreate()onStart()onResume正在运行的ActivityActivity失去焦点onPause()Activity仍未获得焦点onStop()onDestory()返回到Activity进程被终止进程被终止Activity仍未获得焦点Activity仍未获得焦点onStart()关闭Activity图2.1Activity生命周期图14户可见以及能交互的活跃状态;另外还有从活动状态到销毁状态可能是因为一些异常发生或者其他情况导致所占用空间被系统回收;而从销毁状态到活动状态一般是因为activity新实例的启动。2、ServiceService是一种在后台提供服务但不能与用户交互的组件,主要有两种服务模式:本地服务和远程服务。本地服务主要运行于在应用程序内部,服务启动的时候需要调用Context.startService()方法,而服务结束的时候需要调用Context.stopService()方法;远程服务主要运行于应用程序之间,通过自定义的程序接口进行操作,在客户端建立一个连接到服务器的服务对象时需要调用Context.bindService()方法,而关闭连接的时候需要调用Context.unbindService()方法并通过bindService()方法进行服务加载。Service的生命周期比Activity的生命周期简易了很多,分为本地服务周期和远程服务周期两种。本地服务流程和远程服务流程有点类似但不相同,本地服务周期流程涉及到服务创建(onCreate),服务开启(onStart)以及服务销毁(onDestroy)三种状态,其中服务开启能多次被调用;远程服务周期流程涉及到服务创建(onCreate),服务绑定(onBind),服务绑定解除(onUnbind)以及服务销毁(onDestory)四种状态,其中服务绑定只能绑定一次。3、BroadcastReceiver广播接受者(BroadcastReceiver)是指对接收到的广播信息进行过滤、响应的一类组件和service一样,没有用户接口。其中,Android广播机制主要由广播、广播接收器、Intent三个基本要素组成。广播是一种运用在应用程序之间传输信息的机制,从广播类型来看,广播可以分为三种类型:普通广播、异步广播、有序广播。广播的生命周期主要由三部分构成,流程如下:调用对象实现(onRecever)结束;而广播接收器仅在调用对象的时候处于活动状态,在实现(onRecever)之后就处于失活状态,而处于失活状态的进程所占用内存空间被其他程序需要时,系统进行内存空间释放,进程也就结束了,但处于活跃状态的进程则会被保护起来,即使所占用的内存空间被其他程序需求,系统也不会释放其占用的内存空间,进程也将继续运行;Intent是一种通用的消息系统,用在程序之间传递消息。4、ContentproviderContentprovider主要采用了一种多应用程序数据共享的机制,打破了数据只能被创建者使用的规则,不仅能为自己的应用程序提供数据支持,也能为其他的应用15程序提供数据支持,并将数据保存到相应的文件当中,就像轻型的SQLite数据库一样。另外,每一个内容提供者都是一个类,需要继承android.content.ContentProvider类并通过该类中定义的一系列方法从其他应用程序中获取数据。2.2开发环境搭建正所谓“工欲善其事,必先利其器”,要想进行Android应用程序的开发,首先做的就是搭建Android开发环境。主要步骤包括:1、安装JDK;2、安装Eclipse;3、安装installer_r17-windows.exe;4、修改环境变量;5、安装AndroidDevelopmentTools(ADT);6、安装Android模拟器系统版本等。下面进行软件安装和环境变量配置:1JDK的安装与配置JDK全称JavaDevelopmentKit,即Java开发工具包。双击下载好的JDK安装文件,根据安装向导逐步安装。假定将JDK安装在“C:ProgramFilesJavajdk1.8.0_20.JDK”安装成功后必须对其进行配置才能正确使用。具体步骤如下:在桌面“计算机”图标右击,在弹出的菜单中选择“属性”选项。在弹出的对话框中选择“高级”选项卡。单击“环境变量”按钮,在出现的环境变量对话框中新建JAVA_HOME环境变量,其值为JDK安装目录,即C:ProgramFilesJavajdk1.8.0_20。设置好JAVA_HOME环境变量后,编辑已经存在于系统变量中的“path”变量,在其中添加“%JAVA_HOME%bin”。接下来设置classpath环境,在系统环境变量中单击“新建”按钮,创建classpath变量。变量名为“classpath”,变量值为“.;%JAVA_HOME%/lib/;%JAVA_HOME%/jre/lib/”。JDK安装配置完毕后,可以检验配置是否正确。单击“开始”选择“运行”,输入“cmd”命令启动DOS窗口,输入“java-version”命令,显示java版本信息说明环境变量配置成功。2.安装Eclipse16将下载的Eclipse压缩包解压到相应的安装目录即可。3.SDK的安装与配置双击下载好的AndroidSDK目录中Setup程序开始安装AndroidSDK,根据软件安装向导逐步进行。要使Eclipse支持Android应用程序开发,还必须先在Eclipse中安装Android插件ADT。具体安装配置过程如下:(1)首先启动Eclipse,然后单击菜单栏中Help选择“InstallNewSoftware”命令。(2)单击Add按钮,在弹出的对话框中填写对应内容(Name:ADT;Location:http://android/eclipse/)完成ADT加载。(3)单击NEXT,选择“Iacceptthetermofthelicenseagreements”选项,接受安装协议后,点击“finish”。安装完成后重启EclipseADT插件生效。(4)选择WindowPreferencesAndroid,填写SDK安装目录,单击OK按钮。至此Android开发环境配置完成,可以进行Android项目的开发。17第三章地图模型及路径规划算法本章节对地图及路径规划算法进行了介绍。首先对电子地图进行介绍,包括电子地图构成和电子地图查询,然后介绍最短路径规划算法,解决了实际生活中最短路径问题。最后对室内电子地图进行介绍,阐明了室内地图的设计和制作特点以及相关制作流程。3.1电子地图概述电子地图不仅仅是一种将数字化技术应用到传统地图当中而产生的新型地图模式,还是一种现代化的电子信息产品,其中融合了计算机技术、GIS技术和网络技术。电子地图在数字地图基础上采用多种媒体相结合的方式向用户展示了各城市、各地区地形分布面貌并有效利用了GPS导航系统的定位信号,在其基础功能上进行扩展,使得GPS导航系统的功能呈现多样化;此外,电子地图将导航定位信号与周围的地理形势进行结合,动态并直观地对机动车终端进行管理,达到便捷交通、方便出行的目的。电子地图存储的数据主要分为两类,一是空间数据,二是非空间数据。其中,空间数据主要是指描述物体的位置、形态、大小及分布四种属性信息;而非空间数据主要是指描述物体的专题属性、质量以及时间因素等关键信息,是对空间数据的本质描述。3.1.1电子地图构成导航电子地图是包含空间位置地理坐标的数字地图,能够利用空间定位系统的电子地图集数据集,它不但是整个系统与用户的交互接口,而且将导航定位信号与周围的地理形势进行结合,动态并直观地对机动车终端进行管理。目前的电子地图主要由软件部分和数据部分紧密构成,如图3.1所示。数据部分主要有三个重要成分:数字地图,多媒体数据以及其他专业数据,这些数据是通过数据库形式组织的。其中,数字地图主要承载了一些基础的地理空间信息,这些信息存储于地图的数据库当中,由数据库系统做数据支撑;另外,多媒体数据和其他专业地图数据都是叠加在数字地图之上的。而电子地图的数据特征主要体现在质量、数量、时间以及空间四个方面,可以将其划分为四类数据特征。其中,质量特征是指从多种研究方向对地图中数据进行描述,比如有物理、化学、经济等方面;数量特征主要是指将数据进行量化,比如说线条的长度、连通面的面积18和人口数量等;时间特征主要是指地图存在的一个完整生命周期,从何时存在到何时被销毁总的整个生命段;空间特征主要是指地理空间的分布情况及相互联系。电子地图的软件部分主要分成了两个单元:地图设计单元和地图浏览单元。其中,地图设计单元主要是对数据进行采集、处理、存储以及管理。首先要将采集到数据进行处理和整合,接着将处理完成的数据存储到数据库由数据库管理系统统一管理,形成一个完成的数据库数据系统;而电子浏览单元主要让用户能操作电子地图并使用电子地图的各个功能模块,该单元不仅能让用户浏览静态的电子地图,还能让用户了解基于电子地图的动态变化信息。3.1.2电子地图分类电子地图按照内容可以分为室外电子地图和室内电子地图,本论文设计的是室内电子地图。在室内地图服务系统开发中,地理信息系统作为基础知识而存在。地理信息系统(GeographicInformationSystem,缩写:GIS)是利用计算机的先进技术对电子地图数据数字地图多媒体数据其他专业地图设计地图浏览软件地图数据库系统地图符号系统符号化表达缩放与漫游多媒体播放查询与分析图3.1电子地图构成图19地球表面的环境和物体所固有的信息进行获取、存储、检索、分析并以地理空间定位数据的形式进行显示,并建立相应的数据库管理系统。室内地图服务系统应该针对地铁、展会、商场等建筑物的室内地图的以下特点进行设计和制作:1、多数建筑物是分楼层的,一个建筑物的设计就必须支持多个楼层进行设计,将每个楼层单独设计成一幅室内地图。2、根据建筑物特点记录其中的POI信息,例如商场中记录扶梯、公共设施、商铺等。3、要可以详细记录室内地图上各楼层之间的联通关系,用于路径规划。因此虽然在室内地图服务系统中,一个室内地图显示窗通常展示的是一个场所的地图,是可以根据用户指定的楼层和比例尺显示指定的图片,但是室内地图并不仅仅是一张图片,它还包含着在地图图片上的浮层标记和地图控件。在室内地图制作过程中首先要有建筑管理者提供一份建筑物实际比例的CAD图,确保所有楼层结构和实际情况相符合。此外还需要调整采集室内数据的比例与方位角,进行经纬度配准,最后还要制作室内道路图层等。3.1.3电子地图的特点电子地图与纸质地图相比较有以下特点:1、电子地图以计算机屏幕和投影大屏幕为媒介,而传统地图一般以纸张作为信息的载体。2、电子地图的制作、管理、阅读和使用能实现一体化,对不满意的地方能够方便实时地进行修改。而传统纸质地图的生产、管理和使用都是分开的。3、电子地图显示地图内容的详略程度是可以随时调控的,而传统纸质地图的内容是固定的、不变的。4、电子地图能把图形、图像、声音和文字合成在一起,而纸质地图则做不到。5、电子地图的使用要依赖专门的设备,而纸质地图的使用则不需要。206、电子地图由于受计算机屏幕尺寸和屏幕分辨率的限制,整幅地图显示的效果受影响,以分块分层显示为主。而传统纸质地图以图幅为单位整页出版印刷,幅面大,读图的整体印象深刻,地理要素相互之间的关系明白清楚。3.1.4电子地图查询随着电子信息时代的发展及各种通讯技术逐渐成熟,电子地图的功能也趋于完善,已经形成了一个方便快捷、实时精确的基于客户端/服务器体系结构电子地图系统。手机地图就是基于客户端/服务器体系结构的地图,手机电子地图的查询过程也就是手机客户端软件与服务器建立连接并相互通信的过程,手机客户端需要通过服务器的入口地址访问服务器并利用相关功能接口来实现电子图某种功能需求,客户端与服务器之间是通过http协议进行通信的。当客户端要实现某种功能时,客户端需要与服务器建立连接,接着要利用http协议将所发数据协议化并按照http协议的格式向服务器发送数据请求;当服务器接收到数据时需要利用http协议把所接数据解析成原始数据并根据所发请求信息进行地图制作,当地图图片制作完成后服务器将以栅格数据的格式把图片数据发送给客户端;最后当客户端接收到服务器的图片数据时,则向用户展示地图功能。另外,电子地图除了最基础的地图显示功能外还有地图放大、缩小和转移功能,而这些功能的实现都离不开手机的定位技术。手机地图查询流程如图3.3所示。213.2最短路径规划算法实际生活中,时常碰到关于最短路径的问题,这类问题又能够分为指定两个顶点之间的最短路径和任意两个顶点问的最短路径。本系统室内地图路径规划主要面对的是指定两个顶点之间的最短路径问题。在阐述指定的两个顶点之前的最短路径的问题时,可以根据不同的情况选择不同的路径规划算法。目前较为流行的最短路径算法有Dijkstra、A*算法、TSP算法及K一等算法。在此详细介绍本设计所用到的Dijkstra算法和A*算法。10113.2.1Dijkstra算法Dijkstra算法,是基于贪心策略的最短路径规划算法,适合于非负权值的网络单源最短路径算法,不仅可以给出从特定点到其他结点的最短路径,而且可以规划出任意两点之间的最短路径。它是当今在理论上求解最短路径规划问题最齐全和应用最广泛的经典算法。首先假定图的表述为:G=(V,E,W),此中顶点集V=v1,v2,vp,则顶点的个数V=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论