为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 可定制的离线地图系统的开发与研究(可编辑)

可定制的离线地图系统的开发与研究(可编辑)

2017-10-07 33页 doc 67KB 14阅读

用户头像

is_882336

暂无简介

举报
可定制的离线地图系统的开发与研究(可编辑)可定制的离线地图系统的开发与研究(可编辑) 中图分类号: 学校代码: : 密级: 公开 高蕊犬淫 硕士专业学位论文 可定制的离线地图系统的开发与研究 论文作者 指导教师 盒塑 韭建空塾拯 申请学位 培养单位 王程亟? 值息堂医 学科专业 研究方向 评阅人 答辩委员会主席奎塞蕉 全查圈筮堑丕 南开大学研究生院 二一三年五月南开大学学位论文使用授权书 根据《南开大学关于研究生学位论文收藏和利用管理办法》,我校的博士、 硕士学位获 得者均须向南开大学提交本人的学位论文纸质本及相应电子版。 本人完全了解...
可定制的离线地图系统的开发与研究(可编辑)
可定制的离线地图系统的开发与研究(可编辑) 中图分类号: 学校代码: : 密级: 公开 高蕊犬淫 硕士专业学位 可定制的离线地图系统的开发与研究 论文作者 指导教师 盒塑 韭建空塾拯 申请学位 培养单位 王程亟? 值息堂医 学科专业 研究方向 评阅人 答辩委员会主席奎塞蕉 全查圈筮堑丕 南开大学研究生院 二一三年五月南开大学学位论文使用授权书 根据《南开大学关于研究生学位论文收藏和利用管理办法》,我校的博士、 硕士学位获 得者均须向南开大学提交本人的学位论文纸质本及相应电子版。 本人完全了解南开大学有关研究生学位论文收藏和利用的管理规定。南开大 学拥有在 《著作权法》规定范围内的学位论文使用权,即:学位获得者必须按规定提交学位论文包 括纸质印刷本及电子版,学校可以采用影印、缩印或其他复制手段保存研究生学位论文, 并编入《南开大学博硕士学位论文全文数据库》;为教学和科研目的,学校可以将公开 的学位论文作为资料在图书馆等场所提供校内师生阅读,在校园网上提供论文目录检索、文 摘以及论文全文浏览、下载等免费信息服务;根据教育部有关规定,南开大学向教育部 指定单位提交公开的学位论文;学位论文作者授权学校向中国科技信息研究所和中国学 术期刊光盘电子出版社提交规定范围的学位论文及其电子版并收入相应学位论文数据库, 通过其相关网站对外进行信息服务。同时本人保留在其他媒体发表论文的权利。 非公开学位论文,保密期限内不向外提交和提供服务,解密后提交和服务同公开论文。 论文电子版提交至校图书馆网站::...:/.。 本人承诺:本人的学位论文是在南开大学学习期间创作完成的作品,并已通过论文答辩; 提交的学位论文电子版与纸质本论文的内容一致,如因不同造成不良后果由 本人自负。 本人同意遵守上述规定。本授权书签署一式两份,由研究生院和图书馆留存。 作者暨授权人签字: 盒钢 年月日 南开大学研究生学位论文作者信息 论文题目 可定制的离线地图系统的开发与研究 姓名 俞钢 学号答辩日期 .. 论文类别 博士口 学历硕士口 硕士专业学位囹 高校教师口 同等学力硕士 口 专业 院/系/所 信息技术科学学院 计算机技术 .. 江苏省苏州市工业园区唯亭镇阳澄人家幢 通信地址邮编: 否 备注: 是否批准为非公开论文 注:本授权书适用我校授予的所有博士、硕士的学位论文。由作者填写一式 两份签字后交校图书 馆,非公开学位论文须附《南开大学研究生申请非公开学位论文审批表》。南 开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下进行研究工作所 取得的研究成果。除文中已经注明引用的内容外,本学位论文的研究成果不包 含任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所 涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本 学位论文原创性声明的法律责任由本人承担。 学位论文作者签名: 年月日 盒塑 非公开学位论文标注说明 本页表中填写内容须打印 根据南开大学有关规定,非公开学位论文须经指导教师同意、作者本人申 请和相关部门批准方能标注。未经批准的均为公开学位论文,公开学位论文本 说明为空白。 论文题目 申请密级 口限制?年 口秘密?年 口机密?年 年 月 日至 年 月 日 保密期限 审批表编号 批准日期 年 月 日 南开大学学位评定委员会办公室盖章有效 注:限制?年可少于年;秘密?年可少于年;机密?年可少于年摘要 摘要 随着智能手机的迅猛发展,地图类应用已经成为人们日常生活中不可缺少 的重要组成部分。地图类应用功能繁多,有地图定位功能,帮助用户了解自己 所处位置;有道路导航功能,帮助用户快速到达目的地;有轨迹功能,帮 助用户记录所经过的路径轨迹。人们的生活方式正随着地图类应用的发展而逐 渐发生变化。 目前市场上主流的地图类应用有百度地图、谷歌地图等。这类地图应用存 在一定的局限性。这类应用由于是通用性地图应用,用户遍布世界各地,地图 开发商考虑到数据规模和成本问题,这类地图应用提供给用户的只是一些最基 本的信息,包括一些主干道信息和知名建筑物的信息。而对于每一个特定区域, 比如学校、社区、公司等,这类地图应用并不能提供具体详细的信息。基于以 上情况,本文开发了一款可定制的离线地图应用系统。 本文基于平台进行设计开发。本文主要实现了地图显示功能、地图 定位功能以及路径规划功能。地图显示功能主要将本地离线地图瓦片显示到手 机屏幕上,并实现地图的平移、缩放等功能。为了加快地图显示效率,本文还 对底层地图数据库进行了优化。地图定位功能主要是采用墨卡托投影将坐 标投影到地图瓦片上,同时将用户附近的景点信息显示到屏幕上。路径规划 功 能主要是采用 算法搜索两景点之间的最优路径。对于需要一次游览多个 景点的情况,本文提前对景点进行排序预处理,通过多次调用 算法,得 到一条规划路径。 本文最后对系统进行测试,测试实验结果显示:系统采用离线模式节省数 据流量;系统采用显示加速策略后,系统查询效率提升%;系统采用道路规 划预处理后,规划算法效率提升%,算法稳定性提升%。 关键字:地图应用,离线,定位, ,. ’ . . ..? . . , 印 . . , . . , . . , .印 .. . . ? . ,? . .. , %. , %, %.: ,,,. 目录 目录 第一章引言??. 第一节研究背景. ..地图应用的介绍? ..发展前景? 第二节研究目的和意义. 第三节研究内容与方法. 第四节论文结构安排?. 第二章地图系统的相关研究?. 第一节商业地图应用?. ..定位功能? ..路径规划功能第二节开源地图应用?. ..?..?.??....?.? .. ..?.?.?.?.?...??.??.. 第三节本章小结. 第三章系统的框架与设计第一节系统需求与设计目标? ..系统需求一 ..设计目标。 第二节系统关键问题? ..墨卡托投影??.. ..道路规划算法?.. ..数据库优化??.. ..地图数据采集?.. 第三节系统总体框架? ..功能角度划分?.. 目录 ..数据流角度划分.. 第四节本章小结 第四章系统实现 第一节地图功能的实现 ..地图显示功能的实现?.. ..地图定位功能的实现?.. ..地图道路规划功能的实现??.. 第二节地图性能优化的实现? ..地图显示加速策略的实现??.. ..地图道路规划的预处理。 第三节本章小结 第五章系统测试与评价 第一节测试地图的制作 ..地图瓦片获取?.. ..景点信息采集?一 ..道路信息采集?一 第二节功能测试 ..显示功能测试?一 ..定位功能测试?.. ..道路规划功能测试??.. 第三节性能测试 ..流量花费.. ..数据库查询效率.. ..道路规划效率?.. 第四节本章小结 第六章总结与展望第一节文本总结 第二节未来工作 参考文献. 致射.?.. 目录 附录??. 附录:图索引. 个人简历、在学期间发表的学术论文及研究成果?. 第一章引言 第一章引言 第一节研究背景 随着社会科技的发展,人们对智能手机的需求正在不断增加。《互联网 趋势报告》显示:年全球智能手机用户数量增长%,总人数达到亿【】。 中国以.亿智能手机用户数量位居首位,增速达%。智能手机的快速发展为 许多应用提供了良好的载体,其中手机地图应用便是人们使用频率较高的一 类 应用。年第季度中国手机地图客户端市场季度监测报告》数据显示:截 止至年末,中国手机地图应用累计账户数已达.亿【】。庞大的用户群将 会促进手机地图应用快速发展。 ..地图应用的介绍 地图类应用通过与设备相结合,使用户可以准确的了解自己当前所处 的位置并掌握周边的生活信息、社交信息和路径导航信息等【。目前基于地 图的 应用服务已经从普通的端向智能手机领域扩展,许多公司都相继推出了智能 手机上的移动地图服务,如微软、谷歌、百度等。通过移动地图的服务,人们 可以随时随地轻松享受这类服务带来的便利的生活服务信息。 目前市场上比较流行的几款手机地图应用有:谷歌地图【,百度地刚, 地图【】等。这几款手机地图都是基于/模式实现,用户运行手机客户端,同 远 端的服务器平台进行连接,然后服务器根据用户的需求将所需的地图信息通 过 移动网络传送给用户,实现手机地图应用中的各项功能。 目前市场上手机地图应用的功能都比较类似,具体功能如下: 手机定位功能:定位功能使手机用户能够随时随地掌握自己当前所处 位置,即使是在陌生的环境下,用户也能了解自己当前所处位置。 信息共享功能:通过手机地图应用,用户可以尽情浏览感兴趣的商户 的信息,如餐厅,商场,等。用户可以查阅之前网友的点评,判断该商户 是否值得去消费。 道路导航功能:当用户需要前往某个陌生地点时,用户输入起点和终 点,道路导航功能会立即计算得到一条或者多条路径供用户选择,用户按照 手第一章引言 机地图应用所显示的地图路径行走,即可顺利到达目的地。 公交路线查询功能:手机地图应用能够提供给用户具体详细的公交线 路图,以供用户查询使用。 路况信息查询功能:手机地图应用支持用户查询当前各道路的路况信 息,帮助用户选择畅通的道路行驶。 ..发展前景 手机地图应用的发展前景可以分别从地图应用开发公司角度和地图应用用 户角度进行分析。 地图应用开发公司角度:随着手机地图应用越来越流行,各个地图应 用开发公司之间的竞争也日趋激烈。当前环境下,各类手机地图应用虽然种 类 繁多,但其功能却都大同小异,要想在未来的竞争中占据一席之地,必须要有 所创新,注重提升用户体验,从而才能更好地吸引用户,提升用户的活跃度及 粘性。当前环境下,手机地图用户基数相当庞大,但是用户日常使用的活跃度 却不高『。这种情况的产生主要是由于目前手机地图应用存在一定的局限性,用 户只有在特定情境下才会真正使用手机地图应用,例如用户只有在陌生地方才 会使用道路导航功能帮助其出行,其他功能也是如此,只有当用户真真切切需 要使用地图应用功能时,用户才会打开地图应用进行使用。未来,如果地图应 用公司能够从各方面完善地图应用,使其功能更加齐全,那么会有更多的用户 去下载使用它,并且用户使用的频率也会大幅度增加,地图应用开发公司也就 能获取大量收益。 地图应用用户角度:手机地图应用贴近人们的生活,为人们的日常生 活提供各种便利。如果未来地图应用开发公司不断完善地图应用的功能,那么 地图应用将遍布人们生活的方方面面,从出门办公到消费娱乐,人们都会使用 地图应用。地图应用与人们的衣食住行息息相关,人们的生活方式将会被彻 底 改变。 第二节研究目的和意义 目前智能手机地图应用普遍存在很多局限性,具体有: 大部分的地图类应用都是在线模式,因此当用户使用地图应用时需要 耗费数据流量。大量的流量在流量资费较为昂贵的地区,将花费人们大量的金第一章引言 钱。同时在线模式的地图应用在获取地图信息时会受到网络信号强度的影响, 降低用户体验,从而会阻碍地图应用在这些地区的发展。 当前的地图应用由地图开发公司提供相应地图的接口,用户通过 使用这些在线接口来获取基本地图服务【】。但是仅仅调用这些接口所 获取的信息并不能满足用户需求,同时调用接口也会降低系统运行效率。 当前常用的地图类应用的用户遍布世界各地,地图应用开发公司考虑 到成本和数据规模问题,地图应用提供给当地用户的只是一些最基本的道路信 息和建筑物信息。对于特定的区域,如学校、社区、公司等,用户无法获取更 为详细具体的数据信息,这会导致这些区域的用户对应用的依赖度有所降低。 针对以上问题,本文决定设计开发一款可定制的手机离线地图系统,该系 统主要针对特定区域有特定需求的用户群,用户可以根据自己的需求定制所需 功能,从而更好地为用户服务。 第三节研究内容与方法 本文的目标是设计开发一款系统软件,前期需要选取系统开发平台。鉴于 目前市场上主流的手机操作系统是操作系统,且其所有源代码均是开源 的,故我们选取平台作为本文的开发平台。论文主要工作有: 功能实现:本文可定制的离线地图系统的功能包括:地图显示功能、 地图定位功能、道路规划功能。其中地图显示功能是将地图瓦片加载到手机屏 幕上显示,同时实现地图的平移、缩放等功能。地图定位功能是将系统获取到 的经纬度坐标通过地图投影方法转换为地图瓦片坐标,同时把用户当前位置标 记在地图上。在地图定位功能中,本文增加了景点显示功能,将系统定位过程 中用户周围的景点信息显示到屏幕。道路规划功能是由用户输入起点和终点, 系统通过道路规划算法计算得到起点和终点间的最优路径。 系统优化:对系统的优化包括两部分:地图显示加速和道路规划预处 理。地图显示加速是对系统底层数据库进行优化,同时加入瓦片缓存机制,加 快地图读取速度。道路规划预处理是对需要道路规划的多个地点进行预处理, 加快道路规划的计算速度。 实验验证:实验验证过程包括地图源制作、功能测试和性能测试。为 了验证可定制系统的可用性,本文需要制作离线地图源,主要工作包括地图瓦第一章引言 片的下载和地图数据的采集。功能测试是在制作的离线地图基础上运行地图系 统,检测系统功能是否运行良好。性能测试主要是对比分析系统优化前后的运 行效率。 第四节论文结构安排 本论文大致分为三大部分,第一部分是背景知识的介绍以及该领域相关技 术的研究。第二部分是本文系统的框架设计以及具体的实现方法。第三部分是 对本文系统进行测试与评价,对论文进行总结。具体安排如下: 第一章首先介绍了手机地图应用的背景知识,然后引出本文的选题目的和 意义,最后还介绍本文的研究内容与方法。 第二章介绍了已存在的其他一些手机地图应用以及该领域的相关研究。 第三章根据本文需求,设计本文地图系统的总体框架,从各方面对本文系 统进行具体详细的设计。 第四章详细阐述了本文整个地图系统的具体实现过程,包括功能实现、性 能优化等。 第五章对已经实现的系统进行测试与评价,包括功能测试、性能测试等。 第六章是对全文进行总结,指出本文系统存在的一些不足以及未来可开展 的工作。 第二章地图系统的相关研究 第二章地图系统的相关研究 目前地图类应用主要分为两部分:商业地图应用和开源地图应用。商业地 图应用是指由商业公司开发的地图应用,其核心技术不对用户开放。商业地图 公司开发地图应用的目的主要是为了获取利益。商业地图应用包括谷歌地图、 百度地图、地图等。商业地图应用技术相对比较成熟,用户体验良好,是 市场上主流的手机地图应用。但商业地图应用由于适用范围广阔,用户遍布世 界各地,因此它们所能提供给每个特定区域用户的只是该区域的粗略信息。开 源地图应用是指个人或集体为了学习和研究而设计开发的地图应用,其核心技 术对用户完全开放,用户可以通过网络下载获取其所有源代码。对于开源地图 应用,其用户可以根据自身所处地区的特点,相应改变地图应用的功能,使其 形成一款适用于该地区的地图应用。这类系统的局限性在于功能很简单,主要 用于学习和研究,使用者仅限于一些地图应用开发人员。 第一节商业地图应用 商业地图应用的主要代表有谷歌地图、百度地图、地图、地图 等,这类地图各自拥有庞大的用户群,功能多样,体验良好,受大众用户喜爱。 这些地图应用功能比较相似,包括定位功能、线路查询功能、公交路线查询功 能、附近商户查询功能等。 由于商业地图的主要框架和系统结构都比较相似,因此本文只以谷歌地图 为例展开具体介绍。谷歌地图是由谷歌公司提供的电子地图服务,是全球最著 名的地图应用。谷歌地图的功能包括提供卫星图片浏览功能、交通信息查询功 能、公交线路查询功能等。谷歌地图界面清晰明了,操作简单,深受用户喜爱。 本文选取谷歌地图中比较重要的功能进行详细介绍,包括:定位功能和路 径规划功能。 ..定位功能 谷歌地图由很多地图瓦片组成,每个地图瓦片的大小为像素。谷 歌地图一共有层,第层是将谷歌地图缩放到最小的时候显示的地图图片,第二章地图系统的相关研究 而第层是将谷歌地图缩放到最大情况下显示的地图图片。第层地图瓦片数 最少,数量为木,随着层数的递增,地图瓦片数量成几何递增方式增加,第 层总数为,第层总数为,第层地图瓦片总数为的次方。谷歌 地图在该地图结构的基础上实现定位功能,流程大致如下: 用户通过设备获取当前所在位置经纬度坐标,或者用户直接输入 经纬度坐标。 系统通过本地计算获得当前经纬度坐标对应的地图瓦片坐标。 系统判断该地图瓦片是否存在于本地数据库,如存在,则直接显示; 若不存在,则通过移动网络从远端谷歌地图服务器下载,然后显示到手机屏 幕。 ..路径规划功能 路径规划功能是指:用户输入起点和终点,系统帮助用户规划出一条或者 多条线路,以供用户选择。路径规划功能的具体实现过程如下: 用户输入起点和终点名,地图系统获取到这两个地名字符串,本地终 端将这两条字符串通过移动网络发送到谷歌地图服务器,服务器通过数据库 匹 配方法将字符串转化为对应的经纬度坐标。 谷歌服务器通过封装的道路规划算法计算得到多条路径,服务器将运 算结果发送到手机屏幕显示。 第二节开源地图应用 开源地图应用是个人或集体为了研究学习而设计开发的地图系统,其核心 技术对用户完全开放,用户可以根据自身需求修改系统功能。开源地图应用 种 类很多,本文选取和分别进行介绍。 .. 在年创建,被称为维基地图,其创建 是由 目的是为了打造内容数据公开且能让所有用户共同编辑的世界地图。 最大的特点是每个用户都可以创建地图和编辑地图,地图形成的 过程包括:收集地图数据、上传地图数据、编辑地图、添加地图标签以及生成 地图。 收集地图数据:制作地图首先采集地图数据。用户可以使用相关 第二章地图系统的相关研究 设备或者第三方提供的航拍图采集数据。采集过程中,可以记录相关地点的经 纬度坐标,并且在一些关键的地方进行注释,如道路、停车场、公园、住房小 区等。用户还可以根据自己的爱好记录其他信息,包括图像、视频、语音等。 上传数据:收集地图数据完成后,用户把设备中的数据导出为特 定的格式,然后上传到。 编辑地图数据:的地图数据中包括基本节点、矢量路 线以及闭合区域。这些数据带有标签,标签用来表示地名和道路类型等。用户 还可以用不同的编辑器来编辑这些数据。 添加地图标签:有一套完整的标签添加。例如, 当用户编辑完一条道路后,需要给它添加标签来确定这条道路在地图上的渲染 效果。中的节点、路线、闭合区域都能添加标签,标签种类有元 素标签、默认标签、调整标签和渲染标签。完成以上编辑后,用户可以把修 改 完的文件上传到地图。 渲染地图:用户可以在主页使用工具进行渲染地图, 也可以线下使用渲染工具生成地图。完成渲染工作后,用户可以导出地图图 像。 随着地图数据的逐步完善,深受广大用户青睐,甚至有人认 为,未来的地位会超越谷歌地图。优势主要有: 免费的数据源。免费开源是的最大优势。在谷歌地图 日益收紧地图收费策略后,很多网站都转向使用。对于涉及 到地图服务的中小企业来说,是最好的选择。 丰富及时的数据质量。由于是由各地用户共同编辑而 成,各地居民对自己所在地十分熟悉,其提供的信息准确而又丰富。用户会随 时更新地图数据,保证了地图的及时性。这相对于传统的地图服务商来说, 有 其明显的优势。 自由开放的平台。本身很开放自由,没有条条框框约 束开发者。用户可以随意创建各种类型的地图,如创建登山地图、跑步地图、 自行车地图等。 虽然有以上诸多优势,但在很多方面都存在着不容忽视的缺 陷: 用户活跃度不高。虽然本地用户对当地情况很了解,但地图数据采集、 编辑等工作相对比较繁琐,难以引起普通大众的兴趣。第二章地图系统的相 关研究 数据不够全面。的用户分布不均匀,用户主要居于欧 美等发达地区,相应这些地区的地图数据很全面,而其他地区则很匮乏。 整体地图服务的缺失。虽然地图本身有很完整的数据,但在其基础上 并没有衍生出地图服务,缺少定位功能、道路规划功能等。 出现的目的是将整个世界都完整绘制出来,让网络上所有人 享受没有版权限制的免费地图数据,我们期待它今后的发展。 .. 。这 是一款开源手机地图软件,主要实现了地图显示功能【 是一款在环境下开发的手机地图应用,但其并没有使用地图控 件。使用的地图是瓦片地图,与谷歌地图相似,整个地图分为 层,每一层都是完整的一幅世界地图,每一层的地图都由像素的地 图瓦片组成。将地图瓦片保存在本地数据库,通过运行地图瓦片 加载程序将地图瓦片显示到手机屏幕上。 深受手机地图开发者的宠爱,不同于 ,它没有自己独立的地图源,但是兼容谷歌地图,当手机在线时, 系统可以将地图服务器指向谷歌地图服务器,从谷歌地图获取地图源。但系 统 只是纯粹的使用其地图瓦片,没有使用谷歌的接口。的所有 代码都是开源的,地图系统开发者可以下载到源码,在其基础上进行相应的 功 能添加和修改。 也存在缺陷。的地图数据库保存在本地,由 于没有做任何数据库的优化工作,地图瓦片的存取速度受到了影响,特别是 当 地图数据库逐渐增大时,地图瓦片的存取速度会越来越慢。的功 能也有待进一步完善,除了最基本的地图显示功能外,缺少地图 应用的常用功能,包括定位功能、道路规划功能等。 第三节本章小结 本章节主要介绍了当前主流的一些地图应用,分为商业地图应用和开源地 图应用。商业地图应用中选择谷歌地图应用为代表展开具体介绍,主要介绍 了 谷歌地图应用的功能,包括定位功能和路径规划功能,同时也指出了商业地 图 应用存在的缺陷。开源地图应用中选择和为代表第二章地图系统的相关研究 展开具体介绍,分别介绍了其功能和特色,同时也分析指出其存在的缺陷。 第三章系统的框架与设计 第三章系统的框架与设计 第一节系统需求与设计目标 ..系统需求 目前市场上主流的地图应用是商业地图应用,商业地图应用有着明显的优 势,功能强大,性能良好,深受广大用户喜爱。但商业地图也存在着局限性。 首先,商业地图应用基本都采用/模式,即客户端/服务器模式。服务器 存储完整的地图数据,包括地图瓦片、地图道路信息、公交信息等。客户端运 行地图应用时,智能手机必须随时能够连接服务器,每一次的定位、道路的导 航都需要客户端和服务器端进行数据传输,这不可避免的会产生手机数据流量。 纵使今天已有网络的存在,但数据流量的费用对大部分群体来说还是相当昂 贵的,特别是手机地图类应用,由于其传输的数据大部分都是地图瓦片,数据 量较大,导致流量费用增大。流量的问题也是很多用户不敢随意使用地图应用 的原因,因此手机地图类应用用户数量虽然庞大,但其日常活跃度较低,很多 用户只是在有迫切需求时才使用地图应用,但使用结束后随之就关闭了应用。 同时,移动网络的不稳定性给在线系统的运行造成了困扰。虽然目前移动网络 覆盖面很广,但还是会出现网络信号差的情况,即使处于移动网络覆盖范围内, 由于建筑物等设施的干扰,手机网络也会出现偶尔中断的现象,这给在线地图 系统的应用造成了不小的麻烦。 其次,由于这类地图应用用户群体分布广泛,遍布世界各地。地图应用公 司综合考虑成本、数据规模等因素,地图应用只能提供用户一些最基本的数据 信息,包括主要道路和建筑物信息。而对于特定区域的一些具体信息,如小区、 校园、公司等,商业地图只能给出其大致的平面图,具体到某栋建筑物、某条 道路,并不能给出详细信息,用户无法根据区域特色定制地图。 再者,实际生活中道路、建筑物经常会由于城市规划等因素发生变化,当 地用户在第一时间知道后并不能及时进行修改地图数据,而地图开发公司的更 新速度也不够及时,导致地图数据造成阶段性的失真,给用户造成一定困扰。 由于以上局限性的存在,地图应用的用户迫切需求一款可定制的离线地图 地图系统的产生,特此,本文决定设计开发一款可定制’的离线地图系统。 第三章系统的框架与设计 ..设计目标 本文设计开发的地图系统为可定制的离线地图系统。系统首先需要支持离 线功能,即用户可以在离线状态下使用该地图系统;其次系统要支持用户可自 由定制,即用户可以根据所处区域的特点定制适用于该地区的地图;再者系统 需要支持用户数据上传,即当用户发现地图失真时,可根据实际情况实时修改 地图数据。 本文系统具体实现目标如下: 地图的离线功能:离线功能就是指即使在移动网络中断的情况下系统 也能顺利运行。离线功能的实现需要将地图数据都存放在本地手机数据库中。 对于几年前智能手机还未面世时,手机配置低,无法应对将所有系统数据都存 放在本地,并在本地直接进行读取的需求。但是随着这几年智能手机的迅速崛 起,手机硬件配置不断加强,如今手机完全有能力应对地图数据的本地存储和 读取,实现地图系统的离线功能。地图离线功能的实现不仅省去了用户的手机 流量,而且本地的读取和存储相对在线的数据处理更加稳定而有效率,根本上 解决了由于网络不稳定造成的系统崩溃问题。 地图的定位功能:定位功能是每个地图应用都不可或缺的核心功能。 通过使用手机设备,获取到当前的经纬度,然后通过一定方法投影到地图 瓦片上,在手机屏幕上实现当前位置【【】。这是普通地图应用都具备的简单功 能。文本在定位的基础上,当用户靠近某些建筑物时,会自动弹出该建筑物的 介绍,包括有文字介绍、音频介绍、图片介绍、视频介绍。 道路规划功能:道路导航功能是地图类应用的重要功能。常规的地图 道路规划功能由用户输入起点和终点,然后通过服务器端封装好的算法规划出 一条最优的路径供用户参照。当用户需要同时游览多个景点时,系统需要规划 出一条相对优化的路径,使得用户按照该路径游览一遍即可经过感兴趣的所有 景点。这类似旅行商问题,可能系统无法找到一条最优最短路径,但是经过提 前的预处理,可以找到一条相对较优的路径。用户使用本系统规划出的路径后, 可以按照手机屏幕的地图路径显示顺利游览多个景点。 底层数据库的优化:本文的离线地图是基于进行开发 的。之前已经简单介绍过,它是一款开源的在线离线地图项目, 但只是实现了简单的地图显示功能和信息的记录。在我们的研究中发现, 其底层数据库格式过于简单,因此地图查询和地图显示效率不高,这会影响用第三章系统的框架与设计 户体验。本文很有必要对底层数据进行优化,提高地图查询和显示的效率,从 而达到用户所需的效果,改善用户体验。 第二节系统关键问题 本文系统实现的关键问题包括墨卡托投影、道路规划算法、数据库优化和 地图数据采集。墨卡托投影是实现定位功能的关键,道路规划算法是实现道路 规划功能的关键,数据库优化是系统优化的关键,地图数据采集是系统测试的 关键。 ..墨卡托投影 墨卡托投影是地图定位功能的核心。定位功能主要需要实现经纬度信息到 。 地图瓦片信息的转换工作,这部分工作在地图应用中称为地图投影【 墨卡托投影由荷兰地图学家墨卡托于年创立,其主要思想是假设将地 球放置在一个中空的圆柱里,赤道与圆柱内部正好接触【 。假设地图球体中心 有一盏灯,灯光将球面上的图形投影到圆柱体上面,然后把该圆柱体面展开, 形成一幅世界地图,该地图标准纬线为零度。这就是“墨卡托投影”绘制出的 世界地图,如图.所示。从地球球面到圆柱体面,通过数学可以进行转换, 。 基本形成了经纬度到地图瓦片转换的基本思想【 图.墨卡托投影示意图第三章系统的框架与设计 墨卡托投影不会形成地图角度的变化,从而保证了地图上物体形状的不变 形,同时也保证了物体问方位和相互位置的一致性,所以墨卡托投影地图在航 海和航空中经常被用到,百度地图和谷歌地图都是采用墨卡托投影实现经纬度 信息到地图瓦片坐标的转换。墨卡托投影绘制的地图,纬线和经线都是平行线 并且相互垂直,经线之间的间隔是相同的,纬度线间隔从赤道到两级逐渐增大, 这导致在高纬度地区地图与实际差异较大,如格陵兰岛在地图上比实际面积扩 大了好多倍。但是一般普通地图的用户不涉及高纬度地区,所以可以忽略不计。 在实际地图制作中,采用的都是墨卡托投影,区别就是墨卡托投 影把地球当作圆形球体而非椭球体,其目的就是为了计算的方便,精度差很小, 基本可以忽略不计。 墨卡托投影的实现至关重要,它是地图定位显示功能中核心的部分,实现 了墨卡托投影也就实现了经纬度坐标到对应地图瓦片的转换,也就实现了地图 系统的定位功能。 ..道路规划算法 道路规划算法是实现道路规划功能的核心。常规的地图系统中,最简单的 道路规划功能是:用户输入起始地和终点,系统通过算法规划出一条最优路径。 。 本文中也是实现这个最基本的道路规划功能【 当用户使用道路规划功能时,输入起点和终点名。用户所输入的是一系列 字符串,因此系统需要把地名字符串转换成所对应的经纬度坐标。然后系统 把 经纬度坐标重新作为用户的输入数据进行处理。 道路规划功能的核心道路规划算法。本文所采用的道路规划算法是 算法【】。 算法是一种深度优先算法,其特点是时间复杂度理论上是最优 的,其缺陷是所需要的存储空间随着规模扩大成指数增长趋势。本文由于是可 定制的地图系统,地图规模数据有限,即使系统需要缓存所有的经纬度信息也 不会造成存储负担,所以 的存储缺陷可以基本忽略不计。 算法优 势明显,快速的运算时间能够给用户提供良好的体验,正是基于此本文选定 算法作为地图系统的道路规划算法。 算法是启发式搜索算法。启发式搜索算法是指算法从起点开始在整 个空间中进行搜索,对每一个搜索结果进行评估,选择最优的一个结果,然后 从这个结果开始进行搜索,如此循环反复,直至找到最终目标。在这过程中,第三章系统的框架与设计 对搜索结果进行评估的策略是其核心部分,不同的评估策略可以有不同的效果。 搜索结果评估的等式为:。表示从起点开始,沿着已产生的路径,到 目前待评估的节点所需的路径消耗。表示从当前待评估节点出发,移动到终点 的预计所需消耗。所谓预计所需消耗就是根据评估策略所计算出的结果。由于 本文中路径规划只是找到一条最短路径,评估策略可以只是简单考虑路径长 度, 就是指当前待评估节点到目标节点的直线距离。 算法会维护一个开启列表和关闭列表。大致流程如下: 从起点开始设为点,将点移入开启列表中,此时开启列表中 只有一个点,因此值最小的点就是点,然后将点从开启列表中删除,同 时将移到关闭列表中。 将点的所有一跳节点加入到开启列表中,并分别计算其值。从开 启列表中选取值最小的节点,设为点,将点从开启列表中删除,并加入 到关闭列表中。 将与点相邻的所有一跳节点加入到开启列表中,同时判断这些点是 否已经在开启列表中,如果在,则更新其值;不在,则不做任何处理。 选取开启列表中值最小的节点,将其移到关闭列表中。 如此循环,直到终点在关闭列表中,说明己找到规划路径,最终按序输出 关闭列表中的所有节点,这些节点所组成的路径就是最终的规划路径。 ..数据库优化 本文是可定制的离线地图系统开发,本地保存着大量数据,包括地图瓦片、 地图数据等,因此数据库的存取速度关系着整个系统的运行效率。本文地图 系 统的开发基于, 数据库格式很简单,所有数据 都放入一个数据表中,这种格式在数据量很小的情况下能良好运行,体现不 出 任何缺陷。但是,随着数据库规模增大,表的规模也会相应增大,导致数据库 的存取速度降低,系统运行效率也就相应的大打折扣,影响用户体验。因此本 文需要对底层数据库进行优化。本文根据瓦片所处缩放层次的不同建立对应不 同的数据表,同时也为各自缩放层次的数据表建立缓存表,层次化数据,降低 表的规模,达到加快系统处理速度的效果【】。 在地图应用中,用户会频繁地进行地图平移缩放等操作,因此需要加快这 些操作的运行速度来改善用户体验。本文除了采用缓存技术提高地图瓦片的检 第三章系统的框架与设计 索速度外,还采用了显示预读取技术来提高系统响应速度【】。显示预读取技术, 是指提前加载用户下一步操作中可能需要的地图瓦片,当用户进行下一步操作 时,系统就能直接将地图显示到手机屏幕,大大提高了系统的响应速度【】。 ..地图数据采集 本文在系统实现完成后需要对系统进行测试,由于本文是可定制的离线地 图系统的开发,因此测试时需要准备定制区域的地图,其中关键是地图数据的 采集。 地图数据采集主要是离线地图的制作。本文中所采用的地图图片是谷歌的 开源地图,其格式类型为像素的文件,需要下载谷歌的开源地图 瓦片。本文利用开源地图下载软件 完成下载任务【。该软 件使用方法简单,选定用户所需下载的地图区域即可开始下载。 本文只是使用谷歌的地图瓦片,地图的其他相关数据由我们自己采集。在 完成地图下载任务后,我们需要为这部分区域地图进行相关数据的采集。地图 数据主要包括:道路信息和景点信息。 道路信息采集主要是采集道路的经纬度信息。理论上我们需要知道道 路上每个节点的经纬度信息,但实际针对不同类型的道路所需工作量也不同。 直线道路,我们只需采集道路两端的经纬度信息;弯曲道路我们需要其划分为 若干条直线道路,每条直线道路采集两个端点经纬度信息。由于道路存在交叉 路口,每个交叉路口还需单独采集经纬度信息。同时每条直线道路还需各自命 名,相互区分。 景点信息采集主要是采集一些重要建筑物的相关信息。景点信息采集 最重要的是采集景点的经纬度信息,景点经纬度代表景点的所处位置。文本需 要实现景点显示功能,其中要对景点进行描述,所以还要采集景点具体信息, 包括文字介绍、音频介绍、图片介绍以及视频介绍等。 第三节系统总体框架 ..功能角度划分 从功能角度系统主要分为: 地图显示功能:地图显示功能是最基本的地图功能。系统通过程序加第三章系统的框架与设计 载本地数据库中的地图瓦片,将其显示到手机屏幕上。手机操作系统获取到用 户对手机屏幕的缩放和平移操作,系统对此做出响应,对地图进行对应的缩放 和平移。 地图定位功能:用户通过设备获取用户当前经纬度信息,系统使 用墨卡托投影将其转换为地图瓦片坐标,并将坐标对应的地图瓦片显示到手机 屏幕上。本文在定位功能基础上需要实现景点显示功能,在地图定位过程中, 如果用户周末存在某个景点,系统弹出该景点的信息,用户可以查看该景点的 具体介绍。 路径规划功能:由用户输入起点和终点,系统通过 算法得到两 点间的最优路径,并将该路径在地图上标记出来。用户可以输入多个景点,系 统先将所有景点做排序预处理,每两个景点间系统调用 算法得到最优路 径,系统将所有这些路径连接起来,形成最终的规划路径。 ..数据流角度划分 从数据流角度系统分为:下层数据层,中间逻辑层,上层显示层。系统架 构图如图.所示: 地图显示 地图定位 道路规划 显示层 么? 么? 么? . 弋. 弋, 地图瓦片加载 墨卡托投影 .算法 逻辑层 ? /、? 么、? 数据层 日善图攀擗日纛数擗日五数擗 图.系统架构图 下层数据层:下层是数据层保存着系统所有的数据,每个功能模块所第三章 系统的框架与设计 需的数据都直接从下层数据层调用,包括地图瓦片数据、景点数据、道路数 据 竺 可 中间逻辑层:中间逻辑层包含地图瓦片加载算法、墨卡托投影算法、 算法。地图瓦片加载算法用以实现地图显示功能,墨卡托投影算法用以 实现地图定位功能, 算法用以实现道路规划功能。 上层显示层:上层显示层主要负责与用户交互,系统所有功能的实现 结果最终都要传到上层显示层进行显示。地图显示功能将地图瓦片显示到屏幕, 地图定位功能将用户当前位置标记到屏幕上,景点显示功能将景点信息显示到 屏幕,道路规划功能将规划路径显示到屏幕上。 第四节本章小结 本章节主要介绍了系统的框架和设计。第一节主要介绍系统的需求和设计 目标,系统需求的介绍阐述了本文系统开发的必要性,从而引出本文系统的设 计目标,本文需要实现:离线功能、定位功能、道路规划功能等。第二节主要 介绍了本文系统开发的关键问题,包括:墨卡托投影、道路规划算法、数据库 优化和地图数据采集。第三节主要介绍了本文系统的总体框架,系统从功能角 度可以划分为:地图显示功能、地图定位功能和道路规划功能;从数据流角度 可以划分为:下层数据层、中间逻辑层和上层显示层。第四章系统的框架与设计 第四章系统实现 第一节地图功能的实现 地图功能的实现主要包括:地图显示功能的实现、地图定位功能的实现和 地图道路规划功能的实现。地图显示功能主要是将地图瓦片加载到手机屏幕显 示;地图定位功能主要是通过墨卡托投影将经纬度信息转化为地图瓦片坐 标, 将瓦片坐标对应的地图瓦片显示到屏幕上,同时系统还会将用户周围的景点 信 息显示到屏幕上;地图道路规划功能主要是系统通过调用 算法计算得到 规划路径,然后将路径显示到手机屏幕上。 ..地图显示功能的实现 地图显示功能主要是通过加载程序将数据库中地图瓦片加载到手机屏幕显 示。系统地图数据库格式如图.所示: 图.地图数据库文件图 图.中地图数据库列表中列表示地图瓦片的横坐标,对应经纬度信息中第四 章系统的框架与设计 的纬度;列表示地图瓦片的纵坐标,对应经纬度信息中的经度;列表示地图 瓦片所在的层级,.是表示放大到最大的地图层级,表示缩小到最小即只 有一张世乔地图瓦片的地图层级。 地图显示功能的瓦片加载程序由类来实现,代码实现如下: 函数负责重置地图瓦片的图片的像素,其中的和分别 表示所需显示地图屏幕的宽和高。是地图瓦片对象,传入的参数 表示当前屏幕需要显示的地图是以瓦片在屏幕左上角为准的一系列地图 瓦片。是更新命令,用户对地图进行平移或缩放操作时, 手机操作系统获取到该操作并将其传给参数,然后程序 执行地图对应的更新操作。是地图层级,表示需要显示的地图层级。最后 程序执行函数,该函数的参数是,即以仃为参考瓦片显示 在屏幕左下方,然后再显示与之相关的其余地图瓦片。函数通过已知 的瓦片,计算所需显示的地图瓦片的坐标,然后通过查询地图数据库, 获取所需的地图瓦片,最后更新屏幕显示。 ..地图定位功能的实现 定位功能是地图类应用的基础功能。定位功能的实现主要依靠墨卡托投影 的实现,系统通过墨卡托投影将坐标转换成地图瓦片的坐标,然后根据地 图瓦片的坐标查询地图数据库,系统获取对应的地图瓦片并将其显示到手机屏 幕上。同时系统通过计算得到用户当前位置在该地图瓦片上的具体偏移量,然 后使用图标在地图上进行标记显示。 地图定位功能实现的核心是墨卡托投影的实现。本文分别实现了正墨卡托 投影和反墨卡托投影。正墨卡托投影实现将经纬度坐标转换成地图瓦片坐标, 反墨卡托投影实现将地图瓦片坐标转换为经纬度坐标。 正墨卡托投影实现 正墨卡托投影就是指普通的墨卡托投影,主要将经纬度坐标转换为地图瓦第四章系统的框架与设计 函数中的参数,分别代表纬度和经度。该函数功能并不是直接将己知 的经纬度转换成瓦片坐标,而是获取经纬度坐标的“墨卡托规范化偏移”像素坐 标。这是一个范围在到之间的坐标,原点是北纬度、经度为度的理论 参考点即世界地图的左上角。 系统在获取到“墨卡托规范化偏移”像素坐标后,对于每一个地图层级,瓦片 数量以及分布是已知的,系统即可计算得到经纬度所对应的地图瓦片,具体代 码实现如下: , ; ; “仃一幸.木 .木 第四章系统的框架与设计 度坐标。核心代码如下: 函数将瓦片坐标转换为相对于原点的距离长度,这部分根据简单的数学公 式得到。之后函数通过公式进行距离到经纬度的转换,最终获得地图瓦片所对 应的经纬度坐标。 系统使用墨卡托投影方法能够实现地图定位功能,使用画图工具,能够直 接在手机地图上标出当前用户所在具体位置。在此基础上,本文加入了具有本 文特色的景点显示功能。景点显示功能是指当手机用户正处在某个景点附件时, 系统会自动弹出该景点名字,用户还可以查看该景点的具体描述,如文字描述、 图片描述、视频描述等。当用户远离该景点时,系统进行判断,取消景点的显 示。 景点显示功能实现主要基于用户定位功能的实现。当用户开启定位功能, 地图系统能够获取用户当前的地理位置以及相应的经纬度信息。系统通过查询 本地景点数据库,遍历数据库中的每一个景点,然后将景点经纬度信息与当前 用户所处位置的经纬度信息进行对比计算,根据经纬度差距到实际距离的转换 公式计算得到实际的距离,然后系统进行判断是否显示该景点。在本文中,如 果距离范围在米以内,系统则显示景点。经纬度到距离的转换公式代码如下: ,, ..?.毒./?; ...毒./??聿 . : ../ .; 函数计算用户当前位置与景点的距离,然后与本文设定的米进行比较, 判断是否需要显示该景点。随着用户的不断移动,当用户移出该景点的米范 围后,系统通过判断取消该景点的显示。 ..地图道路规划功能的实现 文本中的道路规划功能主要是对定制环境内景点的道路规划,道路规划算第四章系统的框架与设计 法的输入并不是景点的经纬度坐标,而是道路节点的经纬度坐标。因此文本需 要做一个转换,将景点转换成道路节点。本文对每个景点关联一个特定的道路 节点,该节点是距离该景点最近的道路节点。本文通过遍历所有节点,计算道 路节点到景点的距离,从中选取距离景点最近的节点作为景点的关联节点。代 码实现如下: 地图道路规划功能的实现关键是道路规划算法的实现,本文采用的道路规 划算法是 算法。 算法基本思路是:由用户输入两个节点,从起点 开始,算法将相邻节点放入开启列表中,通过等式从开启列表中评判选 取中间过渡节点,然后算法将这些节点存放到关闭列表中,最终寻路结束后算 法输出关闭列表中的所有节点,将这些节点按序连接起来就是一条最优路径【引。 在算法具体实现过程中,首先有两个关键的类 和 。 类主要私有变量有: 代表本节点的父节点,即上一跳节点;表示该节点所处的状态, 表示初始状态,表示节点处在开启列表中,表示节点处在关闭列表中; 是节点的编号;、分别表示节点的经度和纬度; 居节点数,考虑到现实情况,一般道路最多有个分叉路口,所以本文设定 .,表示没有邻居节点;、、是等式中的、、,只有在开启列 表中的节点才存在、、值。算法从开启列表中选取值最小的当做中间过 渡节点,将其放入关闭列表中。表示从起点开始,沿着已产生的路径到目前待 小于等于;口数组存放邻居节点的编号,初始状态下均设为. 表示节点的邻.第四章系统的框架与设计 评估的节点所需的路径消耗;表示从当前待评估节点出发,移动到终点的预 计 所需消耗;值是值与值的和,表示当选取该节点为过渡节点时路径总体 的消耗值。 类主要私有变量有: 表示道路的编号,是道路的唯一标识; 是道路起始节点: 是道路的终点节点。本文中 和 没有本质区 别,就是简单独立道路的两端节点,地位相同。 本文主要通过函数 , ,, ,来实现道路规划功能。,分别是用户 输入的起点和终点,中存放所有的节点信息, 存放着所有的 道路信息。系统在调用该函数前,已经将节点数据库中的所有节点信息导入 到 ,其中包括经纬度信息、节点编号等。系统也将所有的道路信息导入到 列表,其中包括道路的起始点、道路编号等。系统通过调用函数 , 实现如下: ‖???料料料通过蒺久光瑟誊给芤有的彩唇夕争装料??? ,. ;.; ..:/直线的开始节点 .国.:直线的终止书点记 通过读入直线的信息.将节点邻屠点填充完. 分韵将。节点的邻甚硼表中插入,节点 ..; 伽 ..; .. 】; .. ..; . .以“,打 ,函数实现比较简单,循环遍历列表, 将每条道路的起点添加到终点的邻居列表中,将终点添加到起点的邻居列表 中。 完成以上初始化后,数开始具体实现?算法。函数首先将 起始节点放入开启列表中,由于此时开启列表中只有起始节点一个节点,因 此 值最小的就是该节点。函数将其移到关闭列表中,同时将其从开启列表中删 除。 对所有道路节点的邻居列表进行初始化。具体代码第四章系统的框架与设计 具体代码实现如下: 当节点被移入关闭列表中时,表明算法已选择该节点作为中间过渡节点, 算法需要将与该节点相邻的节点都加入到开启
/
本文档为【可定制的离线地图系统的开发与研究(可编辑)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索