




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Android系统的基站定位实现毕业论文目 次摘要目次1 绪论11.1 选题背景11.2 研究内容及论文结构22 技术背景32.1 Android系统概述32.2 手机定位技术概述42.2.1 基于硬件设备的定位方式42.2.2 基于移动网络的定位方式42.2.3 联合定位方式62.3 定位技术分析比较62.3.1 卫星定位62.3.2 蜂窝小区定位72.3.3 信号到达角度定位72.3.4 基于到达时间定位72.3.5 增强观测时间差分定位72.3.6 Wi-Fi定位72.3.7 A-GPS定位72.3.8 对比小结83 关键技术93.1 经典的定位算法93.1.1节点定位算法93.1.2 基于测距、非测距定位算法123.2 经典的信号衰减模型133.3手机端和服务器端之间的数据交互144 系统方案设计154.1 第一个Activity设计思路154.2 第二个Activity设计思路155 详细设计及实现175.1 基站信息采集模块175.2 Wi-Fi信息采集模块195.3 信息传递模块205.4 经纬度获取模块205.5 定位计算模块225.6 定位辅助模块245.7 地图标注模块256总结与展望296.1总结296.2展望29参考文献30附录 A32附录 B34作者简介38学位论文数据集3939中国计量学院本科毕业设计(论文)1 绪论1.1 选题背景手机基站定位技术是一种不需要GPS支持的无线定位技术。手机用户位置信息由于其随着用户在物理空间中变动,活动范围广和具有不可测性,所以手机精确定位历来是一个难题。但是随着监管压力的不断加大和新技术不断集成到轻便的移动设备和终端,位置定位服务很快成为了一个重要焦点。美国联邦通信委员会在E-911实施的最后阶段,要求在2001年10月1日以前,所有无线运营商必须提供半径在一百二十五米,定位精确度概率不少于百分之六十七的手机经纬度定位服务,用于在紧急情况之下获取拨打移动电话用户的位置信息。 王文政. 移动定位应用系统D. 电子科技大学, 2003.随后,许多国家的都推出了符合自己要求的位置服务。例如。欧盟通过了E-112法案,希望能以运营商为主导提供高精确度位置服务 3 Bharat Rao; Louis Minakakis. Evolution of Mobile Location-based ServicesM. 46. Communication of the ACM, 2003 :63-65.。随着通信业的快速发展,仅仅将手机定位技术运用于紧急呼叫情况下,已经不能满足社会需求。美国提出了手机定位的概念,而韩国则对其进行了业务创新。在2002年2月,韩国电信运营商KTF成为世界首个通过其移动通信网络向其终端用户提供定位业务的公司,同时将LBS带入人们眼前。随后,韩国第一大电信运营商SK电讯又在2004年7月,向用户提供用于保护儿童安全的手机定位业务i-kids。韩国运营商对定位业务的创新,间接催生了整个LBS市场 百度百科. 基于位置服务EB/OL. 2013-04-27. /view/152851.htm.。LBS (Location Based Service),即基于位置的服务,是通过卫星(GPS)或者电信运营商无线网络(GSM、CDMA)来获取终端用户的经纬度信息,然后在电子地图的支持下,提供相应位置服务的一种增值业务 1。LBS可以描述为三种技术的交集。图 3.4 LBS-三种技术的交集 5最近这几年,国内LBS市场发展如火如荼,加上苹果智能手机和安卓智能手机在国内市场份额越来越大,人们也渐渐开始接触LBS应用程序,比如街旁、嘀咕、蘑菇团、陌陌等。一些传统互联网巨头也在纷纷涉足移动互联网这一领域,催生了不少比较成功的应用程序,像腾讯微信,谷歌纵横等。除此之外,一些社交网站也加入了自己的LBS元素,例如新浪微博,人人网都推出了显示自己位置的功能,用户可以通过此功能找到自己感兴趣的在自己周围的新朋友。 任齐. 基于Android的LBS应用研究D. 华东师范大学, 2012. Sun, Q, Al E. An integrated system based on wireless communication technology and mobile GISC. /International Geoscience and Remote Sensing Symposium (IGARSS), IEEE, 2005:963-966. Eastwood E J. Good Housekeeping Drop 5LBS: The Small Changes, Big Results DietJ. LIBRARY JOURNAL , 2011, 136(2):80-80.。随着3G网络的不断发展以及即将上马的4G网络,国内的LBS服务肯定会越来越好。相信LBS在中国将会在二三年内迎来一个爆发期。1.2 研究内容及论文结构本文以手机基站定位为基础,从市场需求出发,结合标准的平台开发框架和技术应用,完成了基于Android系统的基站定位的实现,其主要内容组织如下:第1章绪论,也就是当前章,主要介绍了选择该课题的背景和本文的一个总体的架构,同时介绍了本文主要的研究内容。第2章技术背景,主要陈述了Android系统的概况,重点介绍了目前手机定位的一些方式,有基于硬件设备的定位方式、基于移动网络的定位方式、联合定位方式等并对其优缺点进行了分析比对。第3章关键技术,该章节叙述了本项目用到的一些核心技术,包括定位技术和信号衰减模型,手机与服务器的数据交互等等。第4章功能实现,主要介绍了实现本项目的七个程序组成模块,并且分模块进行了详细的讲解其实施步骤,给出了相应的效果图和关键部分的程序。第5章总结与展望,该章节主要对本项目以及本文做了一个总结,并结合当前大环境从技术方面和市场应用方面进行了一些展望。2 技术背景2.1 Android系统概述Android(中文俗称安卓)是一个以Linux为基础的半开源操作系统,由操作系统、中间件、用户界面和应用软件组成 杨丰盛. Android应用开发揭秘M. 2010年第1版. 机械工业出版社, 2010 :10-13.,主要用于移动设备,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发中。Android系统的创始人是安迪鲁宾(Andy Rubin),其开发目的是一款用在手机上的OS,在2005年8月被美国互联网企业Google收购。2007年11月5日,Google与84家硬件制造商、软件开发商及电信营运商成立了开放手持设备联盟来共同研发改良Android系统,接下来,Google通过Apache免费开源许可证的授权方式,公布了Android源代码。允许生产商生产运行Android系统的智能手机,Android系统此后又被运用到了平板电脑和其他终端上。Android系统体系架构可分为四层,从高到低分别是应用层、应用框架层、系统运行库层和Linux内核层 Gandhewar N, Sheikh R. Google Android An Emerging Software Platform For Mobile DevicesC. /NCICT 2010 Special Issue, International Journal on Computer Science and Engineering (IJCSE), 2010. Maia C, Luis Miguel Nogueira & Luis Miguel Pinho. Evaluating Android OS for Embedded Real-Time SystemsR. CISTER Research Centre:Instituto Politcnico do Porto, 2010.。如图2.1图 2.1 Android系统架构图一个Android应用程序由以下四个组件构成:(1)Activity:Activity是用户和应用程序交互的窗口,一个Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,例如拨号、拍照、发送email、看地图。每一个activity被给予一个窗口,在上面可以绘制用户接口。(2)Service:Service是一段在后台可以运行很长时间的代码,它的作用相当于后台的一个系统级应用。除了可以在自己的进程中运行,还可以根据需求在其他程序中运行。(3)Broadcast Receiver:Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而Broadcast Receiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件。(4)Content Provider:Content Provider即内容提供者,可通过它来共享自己的数据给外部调用,给第三方应用提供数据访问的接口。Content Provider 的作用相当于一个内容提供商,其他程序需要数据时就向它索要。Content Provider负责组织应用程序的数据和向其他应用程序提供数据 11 Cnblog. Android四大组件:Activity、Service、BroadCast Recevicer、Content provider EB/OL. 2013-4-23. /keely/archive/2012/04/26/2470744.html. Bimal Gadhavi & Khushbu Shah. Analysis of the Emerging Android MarketR. San Jos State University:In Partial Fulfillment of the Requirements for the Degree Master of Science in Engineering, 2010.。这四大组件通过intent来相互传递消息,比如Activity间的相互跳转,发送广播的内容也是由intent携带的 Shabtai, Fledel A, Y. ; Kanonov. Google Android: A Comprehensive Security AssessmentJ. IEEE Computer Society, 2010, 8(2):35-44.。示意图如图2.2:图 2.1 Android四大组件2.2 手机定位技术概述手机定位技术主要指利用定位技术获取手机终端所处位置信息(通常指的就是经纬度坐标)。从定位的类型来分,可以分为以下几种定位方式。2.2.1 基于硬件设备的定位方式卫星定位是指通过卫星系统来获取未知定位点的位置信息,当前比较成熟的卫星定位系统有全球定位系统(Global Positioning System 来自美国)、伽利略定位系统(Galileo Positioning System 来自欧盟)、格洛纳斯(GLONASS来自俄罗斯)和北斗卫星导航系统(Compass 由中国自主研制)等 李臣杰. 基于蜂窝网的手机基站定位算法研究D. 郑州大学, 2012.。拿GPS定位来举例,GPS定位是通过手机终端的GPS模块接收GPS数据进行定位 金彩萍. PHS短信多基站定位系统研究与测试D. 复旦大学, 2007.。其余各种卫星定位原理与GPS定位原理相似。2.2.2 基于移动网络的定位方式(1)蜂窝小区定位蜂窝小区技术(Cell of Origin, COO),即Cell-ID(蜂窝编号)定位技术,起源于美国E-911,它是无线定位技术发展的第一阶段,也是这个业务平台采取的第一个定位方式。一个基站收发台(BTS)包含一组蜂窝,蜂窝小区示意图如图2.3。每个蜂窝都有自己唯一的编号,就是Cell-ID(比如图中的C1、C2、C3)。一个移动站先后选择一个蜂窝,数据传输和信令传递由基站收发台来完成。蜂窝被分成簇,每个簇有一个位置识别码(LAI)。为了避免过多的信令业务,只要移动台处于空闲模式,网络就得到了当前位置识别码。只有在移动台切换到专用模式下,即通道被用于实际呼叫时,网络才会得到Cell-ID。与此相反的是移动台一直都能获得Cell-ID Trevisani, Vitaletti E, A. Cell-ID location technique, limits and benefits: an experimental studyC. /Mobile Computing Systems and Applications, 2004. WMCSA 2004. Sixth IEEE Workshop on, IEEE Workshop, 2004:51-60.。这种技术确定用户位置的方法是通过收集移动台所处的服务小区Cell-ID信息来定位。Cell-ID 即 GCI 是全球小区识别码,每个基站有一个唯一的小区识别码。GCI由位置区识别码(LAI)和小区识别码(CI)构成,即:CI = LAI + CI = MCC + LAC + CI 2。基于Cell-ID(蜂窝编号)的定位技术,根据小区基站的覆盖范围(半径),来确认手机的大致位置,所以,定位该方式的定位精度与小区基站的分布密度密切相关。市区精度范围大致在150米左右,郊区精度范围大致在1000米2000米左右 黄俊英. 手机定位技术的分析与研究J. 福建电脑, 2009(11):63-64.。蜂窝小区示意图如图2.3图 2.2 蜂窝小区示意图(2)信号到达角度定位信号到达角度(AOA)定位技术:信号到达角度定位方法(AOA)是通过采集基站上天线接收的信号入射角度进行定位。采用这种方法进行定位,需要采集至少AOA的值,将方位角延长,其相交的地方就是需要定位的位置 14。这是最常见的使用阵列天线元件定位方式。(3)基于到达时间定位基于到达时间的定位技术:这种定位技术是测量电磁波从移动单元到基站的时间或时间差来计算未知定位点坐标的方法。TOA方法可以测量的传播时间,计算移动站和基站之间的距离。两维坐标系,如果所收集的是三个基站信息,把基站当做三个圆的中心,以所计算的距离为每个移动站的圆半径,相交的位置为所需的位置。TDOA方法中,则是以双曲线的方式求解。这一算法的最大优点是采用时间差减弱了时间同步的影响。但是双曲线方程组的求解过程很麻烦,我们需要采集至少三个的基站信息来使定位结果更加精确。 14(4)增强观测时间差分定位增强观测时间差分(Enhanced Observed Time Different, E-OTD)是从测量时间差(Observed Time Different)发展而来的,OTD 是测量所需的时间量,E-OTD 是测量的方式。手机无需附加任何硬件便可得到测量结果。对于同步网,手机要测量多个基站信号的相对到达时间;对于非同步网,要一个位置确定的负载和测量单元来接收信号。得到了手机和基站之间的信号传输时间,可以以此算出手机和基站之间的实际距离,最后用得到的距离用公式计算,得到手机的确切位置。2(5)Wi-Fi定位Wi-Fi(wireless fidelity)其本身不具备定位能力。手机通过连接Wi-Fi网络,此时可以获得连接的无线热点的MAC地址,通过网络查询相关数据商提供的数据,可以获得与此MAC地址相对应的经纬度,从而确定手机所处的位置。2.2.3 联合定位方式(1)A-GPS定位A-GPS(Assisted GPS)是一种比较流行的,通过增强GPS性能来定位的一种定位技术,尤其在有移动电话网络覆盖的地方增强效果更为明显。一个A-GPS系统包括天线、RF单元和数据处理器等设备。在A-GPS系统中,蜂窝电话网络可以提供有用的信息来辅助GPS接收器更快地计算出精确的位置。在计算设备位置时,A-GPS会使用来自多个源的信息。A-GPS通过减少信号搜索的空间来减少获取信号的时间。这些方法之一是将从基站转播得到的星历数据直接给手机,代替让手机从速度很慢的卫星链路直接下载星历数据。此外,实际上这个星历数据可以提前几个小时进行预测,不必使基站等待来自卫星的转播数据。接收器利用卫星位置信息,不会受到大气干扰,也不会当试图第一次修正GPS信号搜索频率时受到多普勒效应干扰。所以只要检查少数的频率偏移和其可能的代码延迟。GPS的定位准确性在一系列设备上已经积累了一定有据可查的资料,而A-GPS没有同等的资料。在一般情况下,A-GPS和GPS一样一些常规方面因素将会影响其精确性,比如卫星的几何形状,接收机噪声等。2.3 定位技术分析比较2.3.1 卫星定位(1)优点:定位精度高;无需移动网络支持,适用范围广泛。(2)缺点:定位速度慢、终端耗电;对卫星依赖强(至少捕捉到三颗卫星才行);盲区多,特别是室内2.3.2 蜂窝小区定位(1)优点:兼容性广;成本投资小,在GSM网络基础上,不用增加很多其他设备。具有较高的性价比;支持漫游,各种接口标准统一 2(2)缺点:定位精度受小区半径的影响较大,城市地区由于小区半径相对来说小,所以精度高,但是适用在偏远地区时,发现定位误差很大,不能满足高要求的定位需要 14。2.3.3 信号到达角度定位(1)优点:100兼容现有手机;基站无需作大量修改,不需要增加大量设备(2)缺点:受多径效应干扰较大;当手机与基站距离较近时误差很大;2.3.4 基于到达时间定位(1)优点:兼容性广;支持漫游,各种接口标准统一;定位精度可采用单独优化方式。采用提高负载和测量单元性能,以提升定位精度。(2)缺点:投资成本高。在GSM网络基础上要建大量负载和测量单元。同时要实现同步还需改造GSM网络;业务量大时,网络负担增加。用户有较多定位使用要求的时候,手机终端需经常性执行相关命令,同时将占用大量GSM网的信令资源 2。2.3.5 增强观测时间差分定位(1)优点:需要负载和测量单元数量很少,减少了网络相关设备投资;手机终端用户不用额外支付费用。适用性广,手机终端不用增加硬件模块,只要进行更新软件即可。(2)缺点:部分手机不支持E-OTD 定位方法,软件必须进行更新;精度低。距离因素和环路往返时延会影响定位。同时,定位精度还会受多径效影响。22.3.6 Wi-Fi定位(1)优点:定位快速;支持室内定位,符合城市的应用环境;(2)缺点:由于工作在2.4GHz的公共频段上,信号传播过程中收到其他使用该频段设备干扰;国内各大城市Wi-Fi热点数量层次不齐。2.3.7 A-GPS定位(1)优点:基站设备改动少。不用在GSM 的基站设施基础上增加其它设备,不用建立LMU。设备投资少,运营商易于接受;定位精度高。因为借助 GPS 系统定位,所以精度较高,从理论上计算可以有510m的精度。(2)缺点:兼容性缺点。有些手机支持 A-GPS 定位方式,需要更换终端;终端成本因素。手机终端中增加GPS定位功能,就一定增加定位模块,从而使手机终端功率、体积及成本都有所提升;安全因素。因为GPS定位系统操作权归属美国,有国家安全方面的风险。2.3.8 对比小结经过以上的比较我们在实践项目时选择基于 Cell-ID 的定位方法,该方法操作起来简单易实现,同时无需改造现有GSM网络和基站,基本属于无成本就可实现。尽管采用基于 Cell-ID 的定位方法定位性能不佳,但考虑到目前的定位需求主要集中在蜂窝密集的中大型城市,运用这种定位方式可以适应大多数的定位精度和定位需求。23 关键技术3.1 经典的定位算法用得比较多的定位算法大致可分为三种:基于节点的定位算法、基于测距的算法、基于非测距的算法。首先介绍一下三种节点定位算法,由于已经选定采用基于 Cell-ID 的移动定位方式,而基于测距的算法、基于非测距的算法中大部分算法在第二章中已有介绍,本章只做简略介绍,不作赘述。 张中华. 基于RSSI校正的无线传感器网络质心定位算法D. 山东大学, 2011. D. Culla, D. Estrin, M. Strvastava. Overview of sensor networks J. IEEE Computer, 2004, 37(8):41-493.1.1节点定位算法(1)三边测量定位 Moore D, Leonard J, Rus D, et al. Robust Distributed Network Localization with Noisy Range MeasurementsJ. In: Proc of the 2nd International Conference on Embedded Networked Sensor Systems. Baltimore, USA, 2004, 50-61如图3.1所示, 已知A、B、C的坐标分别用、来表示,、分别表示他们与待定点D的距离。如果我们用表示待定点D的坐标,则存在以下的公式: .(3-1)待定点D的坐标可以通过(3-1)式计算出来,具体表示过程如下。.(3-2)三边测量法的原理图,如图3.1所示。图 3.1三边测量法原理图(2)三角测量法 21 Tufan C. Karalar, Shunzo Yama shita, Miehael Sheets, Jan Rabaey. A Low Power Localization architecture and System for Wireless sensor NetworksC. Signal Proeessing Systems, 2004. SIPS 2004. IEEE Workshop on 2004, 89-94.假设A、B、C的位置坐标分别为、,待定点D的坐标用来表示。我们分别用、来表示待定点D相对于A、B、C的角度。对于弧线AC在内的情况,我们根据A、C和角可以确定一个圆。设圆心为,半径为,那么,且存在以下公式: .(3-3)圆心的坐标和半径可由式(3-3)计算出来。根据A,B,以及B,C,我们可依次计算出圆心、半径和圆心、半径。最后,由点,通过三边测量法可以确定点D的坐标,如图3.2所示。图 3.2三角测量法原理图(3)极大似然估计定位 Jeffrey Hightower, Gaetano Boriello, Roy Want. Spot-On: An indoor 3D Location Sensing Technology Based on RF Signal StrengthR. University of Washington, Department of Computer Science and Engineering, Seattle, WA, USA 2000.2极大似然估计定位法跟三边测量定位法的原理有些类似,其定位方式主要通过三个以上已知点的坐标,来计算未知定位点的坐标。假设n个点的位置坐标分别为, ,待定点D的坐标为。待定点D和这n个点的距离分别用,来表示。运用二维空间距离计算公式,就能得到一个非线性方程组,把这个方程组线性化再使用最小二乘方法来求解,最终可以得到未知定位点的坐标。则存在以下公式:.(3-4)对于公式(3-4),我们从第一个方程开始依次用各个方程与最后一个方程做差,可以得到下面的公式。 ,.(3-5)由公式(3-5)整理得(3-6) ,(3-6)设残差方程为: ,(3-7)对式(3-7)进行线性参数的最小二乘处理,令:,.(3-8) ,(3-9) ,.(3-10) .(3-11)则残差方程的矩阵表达式为: .(3-12)最小二乘原理的矩阵形式: .(3-13)正规方程的矩阵形式: .(3-14)将代入中,得.(3-15) . (3-16) . (3-17)由式(3-18)可以最终确定待定点D的位置坐标为。极大似然估计法(MLE,maximum likelihood estimation)的原理图如图3.3所示。极大似然估计法误差分析如图3.4所示 王振强, 朱义胜. 改进的基于RSSI差值的定位算法J. 通信技术, 2011, 44(7):78-80.。图 3.3 极大似然估计法原理图图 3.3 极大似然估计法误差分析3.1.2 基于测距、非测距定位算法基于测距的定位,主要指的是获得两个点之间的实际距离或角度等信息,进而使用一些基本的定位计算方法来计算待测点的位置坐标。主要有RSSI、TOA、TDOA、AOA等方法。而和基于测距的定位算法不同,基于非测距的定位算法是指通过某些相对关系来计算待测点的坐标,不需要实际测量两点之间的绝对距离或者方位。主要有质心定位算法、DV-Hop定位算法、凸规划算法、APIT算法等 L. Doherty. Algorithms for Position and Data Recovery in Wireless Sensor NetworksD. Masters Thesis, University of California Berkeley, 2000, 6.。这里主要介绍基于测距定位算法中的RSSI方法。RSSI测距所需的成本较低,只需收发装置即可。在给定信号发射功率的情况下,根据设备自身接收到的功率来计算路径损耗。通过预先建立的理论或者信号传输模型,可以根据路径损耗计算出实际的距离。当距离增大时,由于多径效应信号的能量会以减因子的形式减少,从而使RSSI测距的测量精度减小。在信号传播模型建模的过程中,环境因素的影响使得它产生了较大的测距误差。在传播相同距离的情况下,由于多径传播、非视距、天线增益等因素的影响都将会得到不同程度的损耗 Priyantha N, Balakrishnam H, Demaine E, Teller S. Anchor-free distributed localization in sensor networksR. MIT Lab for Computer Science, April 2003.。3.2 经典的信号衰减模型自由空间的无线电传播路径损耗模型 陈维克,李文锋,首珩,等.基于RSSI的无线传感器网络加权质心定位算法J.武汉理工大学学报:交通科学与工程版,2006,30(2):265-268. 由式(3-18)给出: 张洁颖; 孙懋珩; 王侠. 基于RSSI和LQI的动态距离估计算法J. 电子测量技术, 2007, 30(2):143-145.(3-18)式中:为接收端与发射端的距离(km);为无线电传播的频率(MHz);为路径衰减因子,一般取25。运用到实际情况中,因为其他因素影响,信号传输路径损耗和理论值有不同,常采用对数常态分布模型,式(3-19)给出模型的表达式: (3-19)式中:为经过距离后的路径损耗(dBm);是参考距离,通常取值1 m;是平均值为0的高斯分布随机变数,其标准差一般是410。是经过参考距离后的路径损耗。由式(3-18)和式(3-19)可以得到接收端的信号强度,由式(3-20):(3-20)式中:为接收信号强度(dBm),也可以表示成RSSI(),为发射信号功率(dBm)。基于这样的原理,IEEE802.15.4给出了简化的信道模型 IEEEStd.802.15.4-2003. Standard for telecommunications and information exchange between system-local area medium access control(MAC)and physical layer(PHY)specifications for low rate wireless personal area networks(WPAN) Z. /15/pub/TG4 html.,由式(3-21)得: .(3-21)图3.4表示出了上述模型在接收信号强度RSSI与距离之间的关系。从式(3-21)可以得出,信号的衰减和距离存在着指数衰减的关系,而且节点之间相距越短,则路径衰减因子越小();而距离越长,衰减越大()。虽然IEEE802.15.4把上述模型做了精简,但是要计算幂级数形式对硬件部分的性能要求很高。在信号衰减特性曲线中发现,距离越近,衰减曲线就越陡直,距离越远,曲线就越平缓。因此,可以用分段逼近的方法来拟合衰减曲线。图 3.4 接收信号强度RSSI与距离的关系曲线图3.3手机端和服务器端之间的数据交互Android手机和服务器端的数据交互常用的有三种方式,分别是HttpClient/HttpUrlConnection、Web service、Socket。本项目中由于要查询基站所处的经纬度信息,必须要连接网络上的数据方能实现。在软件设计中使用了HttpClient/HttpUrlConnection的方法进行数据交互。HTTP 协议是现在 Internet 上使用频率最高的协议,大量的 Java 应用程序直接或间接使用 HTTP 协议进行网络访问。HttpClient是Android SDK中集成Apache的一个模块,可以直接调用封装好得到HttpClient类来实现。通过HttpClient类可以实现HTTP协议中的GET,POST,PUT,HEAD等方法,可通过这些方法向基于HTTP 协议的服务器提交请求,从服务器端得到返回的响应,将响应进行解析即可得到所需数据。本项目中得到的响应是以 JSON格式呈现的,所以还需对JSON格式的数据进行解析。4 系统方案设计本章主要介绍系统的整体架构的设计,以及总体的设计思路。该项目是一个安卓程序,分为了两个屏幕(即两个Activity)来展现所有的功能,总共包括基站信息采集模块、Wi-Fi信息采集模块、信息传递模块、定位计算模块、定位辅助模块、经纬度获取模块、地图标注模块七大模块。系统整体架构图如图 4.1。图 4.1 系统整体架构图4.1 第一个Activity设计思路第一个Activity也就是进入软件首先看到的界面。这个界面主要包含了基站信息采集模块、Wi-Fi信息采集模块这两个模块的信息。基站信息采集模块收集了当前基站及邻区基站的LAC、CID、RSSI信息,而Wi-Fi信息采集模块则采集了发送无线设备的BSSID,两个模块单独工作,并将这些信息从上之下显示在了第一个Activity上。同时在这两个界面上还包含两个按钮“更新数据”和“去地图标注”分别用于更新当前各项数据和直接在地图上进行标注。这个界面设置的目的在于方便使用者查看接收到的各项信息是否正确,是否需要更新数据或者直接跳转到下一个Activity在地图上进行标注。4.2 第二个Activity设计思路第二个Activity是从第一个界面在点击“去地图标注”按钮跳转后的界面,也就是对地图进行基站及定位结果进行标注的页面。当在第一界面点击“去地图标注”按钮后,通过信息传递模块会将在第一个Activity中两个模块所获取的有用数据传递到第二个Activity中,同时页面跳转到第二个Activity中。第二个Activity中的定位计算模块和定位辅助模块在得到信息传递模块所传输的数据后,会进行判断是否需要使用定位辅助模块进行辅助定位计算并最终给出结果,将结果传递给经纬度获取模块。经纬度获取模块收到数据后,将这些数据转换为经纬度数据。地图标注模块直接用经纬度获取模块处理过后的经纬度数据在地图上进行标注,并以文字形式在界面上显示定位方式和定位的结果(是否成功)。5 详细设计及实现本项目设计来为实现周边基站搜索,提供定位等功能需求,主要的功能模块有五个,分别为基站信息采集模块、获取经纬度模块、定位计算模块、定位辅助模块、信息传递模块、地图显示模块。5.1 基站信息采集模块基站信息包括当前服务基站信息的移动国家代码、移动网络号码、位置区域码、基站编号、信号强度以及邻区基站的位置区域码、基站编号、信号强度。此处涉及的Android API有TelephonyManager、GsmCellLocation。TelephonyManager用于管理手机的一些基础服务信息,GsmCellLocation 用于获取CID(基站编号)、LAC(位置区域码)等信息。如图5.3所示为基站信息采集的效果图主要实施的步骤如下:(1)首先在AndroidManifest.xml中添加权限:(2)然后通过TelephonyManager的getNetworkOperator方法获得MCC和MNC,TelephonyManager在使用之前需要经过实例化获得手机系统服务。通过GsmCellLocation的getCid、getLac方法获得CID、LAC。通过getRssi方法获取邻区基站的信号强度,而当前基站的信号强度需要通过监听器MyPhoneStateListener的监听来获得。同时给更新数据功能绑定一个监听器UpdataListener,当按下按钮“更新数据”就自动更新基站信息。图 5.1 相关代码截图图 5.2 相关代码截图图 5.3 基站信息采集的效果图5.2 Wi-Fi信息采集模块本模块为当Wi-Fi打开时,搜集Wi-Fi信息所用。搜集到的信息主要用在后面5.5定位辅助模块中。需要搜集的Wi-Fi主要有发送该无线信号设备的BSSID、具体的IP地址。需用到Android API中WifiManager类,用WifiManager类实例化对象取得系统服务中的Wi-Fi服务。如图5.5 为Wi-Fi信息采集效果图。首先在AndroidManifest.xml中添加权限: 具体程序实现步骤:图 5.Error! No text of specified style in document.4 相关代码截图图 5.5 Wi-Fi信息采集效果图5.3 信息传递模块本模块作用主要是将负责基站信息、Wi-Fi信息采集的Activity中数据传输到负责百度地图标注的Activity上。需要传输的数据有各个基站的LAC、CID、RSSI以及Wi-Fi的BSSID。此处调用了Android API中的Bundle类和Intent类,将要传输的数据用Bundle类以数组的方式进行装载,再用Intent类的putExtras方法发送Bundle中的数据。同时将这个步骤和“去地图标注”的按钮绑定在一起,即按下“去地图标注”按钮就传输数据。在另一个Activity中用Bundle类的getIntent().getExtras()的方法接收数据,用新建的数组进行储存。图 5.6 相关代码截图5.4 经纬度获取模块在基站信息采集模块中已经获得了当前基站和相邻基站的LAC和CID,为了将定位的点和基站的位置在地图上标注出来,所以需要获得当前服务基站和相邻基站的经纬度。基站的经纬度数据只有运营商和相关的数据商有权拥有,故需通过联网到数据商网站进行查询。我选择了聚合数据 聚合数据. 开发手册EB/OL. 2012-3-27. /.作为基站经纬度数据网络服务端。具体实施步骤如下:(1)在AndroidManifest.xml中添加相关权限:(2)此处涉及的Android API有HttpGet、HttpClient、JSONObject。通过HttpGet生成一个Http客户端对象,将这个对象中嵌入所要查询的CID、LAC数据和在聚合数据 28上申请到的KEY。使用HttpClient发送请求对象,向网络服务端请求数据。图 5.7 相关代码截图(3)从网络服务端返回的数据,先用字符串缓冲类的实例化对象读取,然后再转化为普通的字符串类型。图 5.8相关代码截图(4)由于在上一步得到的字符串中含有其他冗余的信息,不能马上得到我们所需要的经纬度数据,而字符串中储存数据的形式是JSON类型的。所以接下来通过JSONObject、 JsonReader类来层层解析字符串的JSON数据,并提出冗余的数据,提取经纬度数据。图 5.9相关代码截图由于互联网安全问题,国家政策限制,网络上不再开放提供基站经纬度数据,故只能够通过手动采集获得个别基站经纬度数据。5.5 定位计算模块本功能模块主要用于根据基站在地图上的坐标用极大似然估计定位算法等计算出手机所在的坐标。由于在进行坐标计算时,必须用平面坐标。而GPS经纬度坐标属于WGS84坐标系,是球面坐标的一种,所以需将经纬度坐标转换为屏幕像素坐标再进行计算。当计算结束时,再将屏幕像素坐标转换为经纬度坐标方便接下来的地图标注。主要实施步骤如下:(1)将手机信号强度通过经典的信号衰减模型的公式转换为基站与手机实际距离便于利用极大似然估计定位算法进行计算。这里自己写了一个函数getdistance(int r),可以在后续进行调用。图 5.10相关代码截图(2)将得到的基站经纬度坐标转换为屏幕像素坐标。这里需要用到的百度地图API投影的接口,接口用于投影屏幕像素坐标和经度和纬度坐标之间的转换。通过MapView类的getProjection()方法实现经纬度坐标转换为屏幕像素坐标。这里自己写了一个函数exforxy(double lat,double lon),可以在后续进行调用。图 5.11相关代码截图(3)得到屏幕像素坐标后用极大似然估计定位法进行计算。具体计算方法详见3.1.1中的极大似然估计定位。图 5.12相关代码截图图 5.13相关代码截图图 5.14相关代码截图(4)将定位计算的结果转换为经纬度坐标。此处调用百度地图API中的Projection接口,Projection接口用于屏幕像素坐标和经纬度坐标之间的变换。通过MapView类的getProjection()方法实现屏幕像素坐标转换为经纬度坐标。这里自己写了一个函数exforlatlon(Point point),可以在后续进行调用。图 5.15相关代码截图5.6 定位辅助模块由于在实际测试过程中由于存在一些意外的数据,导致最后定位结果偏差较大故加入本功能模块,以降低定位偏差。本模块主要分为两个部分,第一部分针对室外情况
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二手房经济服务合同(标准版)
- 建筑物业行业装修设计方案
- 物联网安全能力培训课件
- 传统戏曲保护推广倡议书4篇
- 企业内部沟通平台搭建标准化流程
- 基因编辑技术的侵权责任认定研究-基于科学不确定性与人权保障的司法平衡
- 高三试卷:湘豫名校联考2024-2025学年高三上学期11月诊断考试历史答案
- 道路交通监控与信息化管理方案
- 项目实施过程中的数据监控方案
- 安全培训执法课件
- 《机器学习》课件-第3章 监督学习
- 煤矿调度安全培训方案课件
- 《浪淘沙·北戴河》诗词赏析
- 山东省济南市2025届中考数学真题(含答案)
- 医疗机构医疗质量安全专项整治行动方案
- 基于SprintBoot的大学生实习管理系统的设计与实现
- 外踝撕脱骨折课件
- 钢架油漆翻新施工方案(3篇)
- 数字平台治理 课件 第五章 数字平台生态治理
- 2024-2025学年河南省省直辖县级行政单位人教PEP版(2024)三年级下册6月期末测试英语试卷(含答案)
- 妇科葫芦灸中医适宜技术
评论
0/150
提交评论