基于ucmap开发的室内地图定位毕业设计(编辑修改稿)内容摘要:
动 GIS 平台 UCMap 简介 UCMap[8]是当前主流的移动 GIS 开发组件, 其拓展了 GIS 在移动端的应用,提供了、 Windows iOS、 Android 等系统下的开发包 SDK、 DEMO 演示程序和相关 说明 文档,便于开发人员在手机或平板电脑上建立移动 GIS 应用。 共有五种开发模式: 1) 支持本地矢量地图,即 Shapefile、 MapInfo 等格式的数据经 UCMap 地图配置程序转换成适合手机显示的格式 ; 2) 支持 OGC 标准的地图服务,即以网络在线配合本地缓存的模式访问支持 OGC 标准GIS服务即 WMS、 WFS、 WCS、 WFST,如主流的 ArcGIS Server、 Geoserver、 Mapserver、Mapguide 等 ; 3) 支持互联网地图,即访问 Google Maps、 Google 影像、微软 Bing Maps 并提供坐标纠正服务,以及本地矢量叠加 ; 4) 支持自定义 title 地图瓦片,即用户采用自定义的切图工具生成地图瓦片,并提供相关瓦片坐标参数和命名规则,用户自行搭建服务端可以网络在线、本地缓存的模式来访问 ; 5) 支 持在 Google Maps 、 Bing Maps、自定义瓦片上叠加本地矢量数据或 WFS 查询的矢量数据,可以网络在线、本地缓存的模式来访问。 UCMap 技术优势:支持大数据量的离线矢量 shp 地图和影像,且地图浏览速度远超其他任何 GIS 平台;支持自定义点、线、面矢量符号的制作、渲染以及变换操作 ;拥有丰富的矢量交互编辑功能支持各种空间查询和空间分析。 第 2 章 开发环境及相关技术简介 5 Socket 通信机制简介 TCP/IP 通信协议是一种可靠的网络协议, 传输层向应用层提供了套接字 Socket接口, Socket 封装了下层的数据传输细节,应 用层的程序通过 Socket 来建立与远程主机的连接,以及进行数据传输。 即利用 Socket 进行通信的两个程序通过一条双向通信链路实现数据交换。 通信的两个终端都称为一个 Socket。 在客户 /服务器通信模式中,服务器程序 需要运行在一条有固定 IP 的主机上,并通过 ServerSocket 监听该台主机上的一个固定端口,等待客户端的连接请求。 当服务器端接收到客户端的连接请求之后,为了记录下客户端的地址及端口信息,服务器端也需要创建与客户连接的 Socket,然后通过此 Socket 的输入输出流与客户端进行通信。 客户端程序在创 建 Socket 时,也会监听一个端口,但该端口由客户端所在主机的系统自动分配,需要通过服务器的地址和监听的端口,去请求连接服务器,当服务器接收客户端的连接请求之后,服务器和客户端之间就建立了一条双向通信链路,通过 Socket 的输入输出流,客户端和服务器便可以进行通信。 由于 Android 开发是基于 java 语言的,所以在手机端 Socket 通信机制和 java Socket 通信机制互通。 所不同的是手机的 IP 是由运营商动态分配的,所以手机端不用来做服务器。 主要 定位算法 位置指纹定位算法 信 号的多径传播对环境具有依赖性 [9],呈现出非常强的特殊性,对于空间中的每个位置而言,该位置上信道的多径结构是唯一的,信号发射终端发射的无线电波经过反射和折射,产生与周围环境密切相关的特定模式的多径信号,这样的多径特征可以认为是该位置的“指纹”。 因此,可以事先选取一些样本点,采集这些样本点处的信号特征存储在数据库中,定位阶段再采取所在点出的信号强度特征,与数据库中的指纹数据进行匹配,找出最相似的样本点来进行定位。 位置指纹定位算法的实施共有两个阶段 [10]: 1) 离线采样阶段:在离线训练阶段主要工作是在所需定位区域的选取适当的样本点并采集样本点的信号特征,例如 WiFi 信号强度,多径相角等,将一个样本点编号和一组信号特征值构成一组记录插入数据库的指纹表中以便定位阶段进行比对。 2) 定位阶段:在该阶段主要工作是通过采集终端接收机当前所在位置处的信号特征将其与指纹表中的样本点进行比对,寻找最相似的样本点进行定位。 最常用的比对算法有欧式距离。 中国民航大学本科毕业论文 6 位置指纹算法是基本的室内定位算法,相比较三边定位法而言,其 原理简单,容易理解,易实现,定位精度比较高且可充分利用现有资源,部署成本低,系统升级对客户的影响也较小。 但是位置指纹定位算法也存在一些缺点:当所需定位的室内空间比较大时需要建立强大的指纹数据库,离线训练阶段将耗费很多的人力。 此外,当指纹数据库过于庞大时,定位阶段采集到的信号特征如果和指纹库中的所有样本点一一进行比对,会花费大量的时间导致定位效率低下,而且有可能影响定位精度。 最近邻法 最近邻法是一种最基本的确定性位置指纹匹配算法。 该方法实际上是利用离线训练阶段采集到的样本点处的信号特征作为样本点“指纹”。 在定位阶段,将实时采集到所在位置点处的信号强度与数据库中样本点的指纹进行比对,选择指纹特征最相似的一个样本点,将该点的经纬度看做当前位置的近似估算值。 可以采用欧式距离也可以采用权值的方式来描述样本点和待定位处信号特征相似程度。 若采用欧式距离,则在定位阶段将采集到的信号特征与指纹库中每一个样本点的指纹进行比对,求欧式距离,然后选取欧式距离最小的一个样本点作为位置近似估计点,然后返回给定位请求客户端。 K 近邻法 当前位置指纹匹配算法的研究目标是进一步提高定位精度。 K 近邻法就是在最近邻法思想的基础 上提出来的另一种位置指纹匹配算法。 其实质就是在定位阶段从指纹库中选取与待定位点的位置特征最相近的 K个点,然后取出这 K个位置点处的经纬度,并对这三个点的经纬度求均值,将此均值当作待测位置点的定位结果。 采用此方法可以在一定程度上减小由于信号特征不稳定导致的定位误差的问题,而且可以更好的描述待定位点的位置,提高定位精度。 本章小结 本章首先整体介绍了系统开发所需搭建的软硬件环境,然后详细阐述了 Android移动 GIS 开发平台 UCMap 的几种开发模式和相关技术优势。 并介绍了 java Socket通信机制的 基本原理。 对室内 WiFi 定位通常采用的位置指纹识别算法的基本原理和实施过程进行了详细介绍,并且介绍了两种基本的位置指纹匹配算法最近邻法和 K近邻法第 3 章 系统需求分析 7 第 3 章 系统需求分析 系统目标 随着 Android 智能手机用户人数的普遍增长,人们对于基于 手机的位置服务需求也越来越强烈。 本文在分析了当前定位形势的基础上对本定位系统提出以下目标: 为用户提供高精度和高可靠性的室内外定位服务; 使用户可以在室内 WiFi 定位系统覆盖区域内通过该定位系统,获取其所在位置信息; 使用户可以在室外环境下通过 GPS 获取自己的位置 信息; 实现图形用户界面,操作简单,给用户提供良好的使用体验 ; 定位服务器端可以迅速处理客户端的定位请求,并将定位结果返回给客户端。 系统描述 本 定位系统分为 室内和室外 两个模块。 其中 室内定位系统包括客户端和服务器两个模块,客户端 是带有 WiFi 接收功能的 Android 智能手机。 离线训练阶段需要 进行 WiFi 信号的扫描,将采集到的 WiFi 信号强度传递给服务器端,帮助服务器端完成样本指纹库的建立。 定位阶段将实时采集到的 WiFi 信号强度传递给服务器端,并及时接收 和解析 定位服务器返回的定位结果(经纬度),将 定位结果显示在本地矢量图中 实现图形用户界面,让用户可以很直观的知道自己当前所在的位置。 服务器端主要用来建立和维护样本指纹库,实时响应客户端的定位请求,离线采样阶段接收客户端发送过来的样本点的信号强度,将其插入后台数据库的样本指纹表中, 实时 定位阶段接收 并解析 移动客户端发送过来的 WiFi 信号强度,将其与指纹库中的样本点的信号强度进行比对 ,然后按照一定的选择规则,选取最相似的样本点处的经纬度,当作定位结果 并将 该 结果发送给客户端。 室外定位系统则只有移动端,其通过手机在室外接收到的卫星信息,利用 GPS获取经纬度, 然后根据经纬度将客户端位置信息标注在手机端的校园矢量地图上,使用户可以知道自己当前的位置信息。 系统功能需求 1) 服务器功能 离线训练:服务器接收智能手机采集的各个样本点处 3 个路由器的信号强度,将中国民航大学本科毕业论文 8 其插入一张 collection_tb 表中,同时求出信号强度均值,将其插入另外一张名为average_tb 的表中,完成样本库的建立。 实时定位:服务器端接收手机实时采集到的路由器的信号强度,将其与样本指纹库中各个样本点的信号强度进行比对,选出最接近的一个样本点,近似看做是手机此刻的位置,然后根据该点的样本点编 号从另一张经纬度比对表 pare_tb 中取出该样本点的经纬度并发送给手机端,同时将手机当前位置的经纬度插入历史轨迹表history_loc_tb 和当前位置表 current_loc_tb 中,以达到记录客户端位置信息的目标。 历史轨迹查询:响应客户端的历史轨迹查询请求,按照查询条件,从数据库中取出响应客户端的历史位置点,然后处理后发送给客户端。 2) 移动端功能 在离线训练阶段,移动端对每个样本点处的 WiFi信号强度进行采样,通过 Socket套接字 发送给服务器,帮助服务器完成样本指纹库的建立。 在线定位阶段, 若 移动端 在室内环境中,则 实时采集所在点处的 WiFi 信号强度,将其发送给定位服务器,然后接收服务器发送过来的定位结果,然后将自己的当前位置显示在本地矢量地图中。 当移动端在室外时,通过 GPS 确定自己的当前位置,当位置发生变化时,实时更新手机地图上的位置信息。 3) 历史轨迹查询 有时移动客户端需要查询自己一天的历史轨迹信息。 本系统还提供了室内客户端历史轨迹查询 功能。 当客户端想要查询自己的历史轨迹时,可以向服务器端发送历史轨迹查询请求,然后服务器从数据库中取出该客户端当天的历史轨迹,按照时间先后顺序发送给客户端,客户端解 析之后,在本地地图中回放自己的历史轨迹。 本章小结 为了开发出让用户体验良好的系统,本章在第一章研究现状分析的基础上,对系统的需求进行了详细分析。 并对服务器和客户端的功能需求分开进行了详细阐述。 为后面系统的整体设计提供了很好的指引作用。 第 4 章 系统设计 9 第 4 章 系统设计 系统整体架构 本定位系统分为室内和室外两个模块。 室内定位系统采用 C/S 架构 分为客户端和服务器两个模块,其系统总体架构图如图 41 所示。 整个系统流程分为离线采样建立指纹 数据 库和实时定位两个阶段。 用 户 1用 户 2用 户 3无 线 访 问 点后 台 数 据 库 服 务 器定 位 服 务 器数 据数 据 图 41 系统总体架构图 服务器端设计 服务器功能模块划分 PC 服务器端端主要功能有样本库的建立与维护,响应移动手机端的定位请求,并根据手机端实时发送过来的 WiFi 强度,进行定位计算,并将定位结果发送给手机端。 服务器端功能模块图如图 42 所示。 数 据 库 模 块服 务 器 端存 储客 户端 的位 置信 息定 位 模 块存 储样 本点 的信 息接 收客 户端 的定 位请 求向 客户 端发 送定 位结 果 图 42 服务器功能模块图 中国民航大学本科毕业论文 10 服务器端功能描述 1) 数据库模块 服务器端的数据库模块用来存放数据信息,包括样本点的位置指纹信息,经纬度信息,方便在定位阶段进行定位 计算。 另外,该数据库中还存放了定位时客户端的当期位置信息和历史轨迹信息,实现对移动目标的监控。 2) 离线采集模块 该模块 在 离线采集阶段, 负责 接收并解析客户端发送过来的样本点指纹信息,然后 将数据进行处理后存入后台数据库。 3) 定位模块 在实时定位时,服务器端定位模块,主要负责接收客户端的定位请求,然后 通过定位算法进行计算,将定位信息发送给客户端同时将其插入后台数据库。 4) 历史轨迹查询模块 实时响应客户端历史轨迹查询请求,取出数据库中相应客户端的历史轨迹信息取经过处理之后,将其发送给客户端。 移动客户端设计 移动客户端功能模块划分 移动客户端主要负责在离线训练阶段,采集各样本点的信号强度,提交给服务器,帮助服务器完成指纹数据库的建立。 在定位阶段,实时采集所在位置点的信号强度,将其提交给服务器 进行定位计算 ,并接收服务器返回过来的定位结果,将其显示在UCMap 加载的本地矢量图中,以图形用户界面的形式向用户展示当前位置。 此外,移动客户端还可以向服务器请发送历史轨迹查询请求并接收服务器返回过来的结果,实现历史轨迹的回放,其功能模块图如图 43 所示。 移 动 端离 线 采 集 模 块 定 位 显 示 模 块 历 史 轨 迹 查 询 模 块扫 描W i F i信。基于ucmap开发的室内地图定位毕业设计(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。