《基于安卓系统平台的校园LBS系统开发,软件工程论文.docx》由会员分享,可在线阅读,更多相关《基于安卓系统平台的校园LBS系统开发,软件工程论文.docx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于安卓系统平台的校园LBS系统开发,软件工程论文近年来,移动互联网技术飞速发展、Android 智能手机的日益普及,基于 Android 平台而开发的各种移动应用层出不穷。华而不实,被看作移动互联网领域的 杀手级应用 的 LBS 更是得到了史无前例的发展。LBS 发展至今,人们愈加需要在像学校、医院这样的小环境区域中获得准确 LBS 服务1.提供LBS 服务必须在确定用户位置的基础上,而这样的小环境区域往往包含室内和室外两种不同的环境。 在室外,GPS 提供了非常精准的位置信息; 但是卫星信号易遭到建筑物的遮挡,在室内环境下 GPS 并不能提供高精度的定位,而 WiFi、ZigBee、蓝牙、
2、红外、超声波、射频辨别、超宽带等无线定位技术快速发展,成为对 GPS 的有力补充。 因而本文以校园这个特殊职能的小环境区域为研究对象,基于 Android 平台设计和实现了一个校园 LBS 系统: 以 ArcGIS 系列软件制作的校园地图为背景; 室外环境中通过接收 GPS 信号进行定位; 室内环境中在无需利用额外硬件设备的前提下,综合考虑无线信号覆盖范围、受室内环境影响程度、定位精度要求等等,采用基于 WiFi 信号强度的位置指纹定位算法进行定位。系统可为师生和来访者提供位置相关的信息服务。 1 系统设计 1. 1 系统需求分析 本系统所追求的理想结果是在室外环境中,地图服务功能能够让用户在
3、终端设备上查看校园环境地图,通过放大缩小、上下移动等操作全面熟悉校园环境。实时定位用户位置、查询从当下位置前往目的地的最优途径并标记在校园环境地图上; 在室内环境中,根据用户的选择显示相应的室内环境地图。 定位时,将用户相对于室内环境的位置标记在室内环境地图上,并且能够获取该位置相应的服务信息,例如,空教室信息、课程信息等等。 1. 2 系统总体设计 根据系统的需求分析,整个系统在逻辑上分为客户端、服务器端与数据库三层架构。系统构造如此图 1 所示。 1 客户端: 安装于 Android 系统的智能手机上,完成核心功能与数据的前台显示,是与用户进行交互的重要层。系统核心功能主要包括地图服务、室
4、外 GPS 定位、校园途径指引、室内 WiFi 定位、课程信息查询、空教室查询。 2 服务器端: 运行于 PC 端,主要分为 GIS 服务器、Web 服务器和定位服务器。将 ArcGIS Desktop 软件开创建立的校园地图利用 ArcGIS Server 发布于 Web 服务器,并实现管理和更新。当 Web 服务器接收到客户端发来的地图操作请求时,通知 GIS 服务器根据要求调用数据库中的地图数据以及相应的地理处理工具来提供服务。定位服务器主要用于运行算法,当接收到客户端发来的无线信号时,调用室内定位算法确定终端设备的位置,并将该位置的相关数据发送至客户端。客户端与服务端之间利用无线网络进
5、行数据传输,通过标准的 HTTP 协议进行通信。 GIS 服务器: ArcGIS Server 10. 2Web 服务器: IIS 6. 0 Internet Information Server6. 0定位服务器: Apache Tomcat 7. 0. 47 3 数据库: 负责向服务层提供数据支持。客户端使用 SQLite 和文件方式存储少量本地数据; 定位服务器采用 Mysql 数据库存储室内定位中离线训练阶段的位置指纹库2、空闲教室信息和课程信息。GIS 服务器采用 Geodatabase 地理数据库存储校园地图的空间数据和属性数据。 2 校园地图系统设计 针对校园环境的地图系统的设计
6、经过就是将校园地理信息矢量化为地图并完成发布和管理的经过,由 ArcGIS Desktop 软件来完成空间数据的采集、编辑、分析、更新等操作,ArcGIS Server 实现地图服务和网络分析服务发布,在 Android 平台上结合ArcGIS for Android 插件访问自行发布的地图,获取地图服务和网络分析服务。 2. 1 空间数据的采集 空间数据的采集是将纸质地图、遥感影像、外业观测数据、文本资料等不同来源的数据转换成计算机能够接收与处理的数字形式3 -4.本地图中,主要包括下面几种数据: 1 地图数据,采用了由学校提供的校园平面地图。 2 影像地图,在 GoogleEarth 上利
7、用 GEtScreen 软件截取校园卫星影像数据。 3 实测数据,由于设备有限,本地图直接通过ArcGIS Online、Google Map 等现有的地图软件测量比拟获取地图点坐标、道路道路长度等数据。 2. 2 地理配准 采集的校园平面地图和卫星影像数据是不含任何地理数据信息的,要使用它就要进行配准以及赋予它正确的地理数据。这里必须引入空间参考的概念。 空间参考包括 X、Y、Z 值坐标系以及 X、Y、Z 和 M 值的容差值和分辨率值,使用这些属性,能够确定一个地物在地球上的位置。常用的坐标系统主要包括地理坐标系和投影坐标系。本地图中选择地理坐标系GCS_WGS_1984,该坐标系就是移动平
8、台 GPS 所采用的坐标系统,通过 GPS 获得的坐标信息都是按这个坐标系提供的经纬度。ArcGIS 中地理配准使用 Geo-referencing 工具条,一般要经过坐标系的选择、添加控制点、检查残差、校正及重采样等几个步骤。 为减少误差带来的影响,控制点应当尽量选取卫星影像上容易分辨且比拟精细特征点或者图像边缘处的点。并且尽可能在区域当中均匀、满幅的选点。 影像特征变化较大的地区应该多项选择几个控制点。 2. 3 空间数据的编辑 完成地理配准之后,需要构建校园要素图,对校园内所需描绘叙述的要素以图层的形式表现出来,这是一个矢量化的经过。根据系统的设计要求,将校园地图的空间数据分为 5 个图
9、层,牵涉点要素、线要素和面要素 3 种图层类型,完成对不同属性地物的矢量化。详细如表 1 所示。【1】 ArcGIS 中空间数据的编辑使用 Editor 工具条,依次对各个图层的地物进行编辑。进行数据编辑时需要注意各个数据元素之间的拓扑规则。 2. 4 空间数据的分析 ArcGIS 中使用网络分析功能模拟解决现实世界的多种网络问题。根据网络问题的不同类型,能够采取不同的建模方式。对于定向网络,通常采用几何网络分析方式建模。对于非定向网络,通常采用网络数据集的方式建模。 交通网络属于非定向网络,适用由边、交汇点和转弯要素组成的网络数据集建模。步骤如下: 首先建立和编辑网络数据集; 然后在网络数据
10、集中利用ArcToolbox 中的网络分析扩展模块进行点到点的途径分析,获得最短途径。 2. 5 地图服务与网络分析服务发布 在 ArcGIS Server 服务器上发布服务之前需先安装 IIS,它是允许在网络 包括互联网和局域网上发布信息的 Web 服务器。校园地图服务和网络分析服务发布成功之后,可在 ArcGIS Online 上实如今线访问,通过 IIS 供不同的移动终端调用。An-droid 平台使用 ArcGIS for Android 插件调用自行发布的地图,执行最短途径分析操作。 3 基于 WiFi 信号强度的位置指纹定位 复杂多变的室内环境中,无线信号传播衰减模型5难以准确的描
11、绘叙述具有较强时变特性的 WiFi 信号强度与距离之间的关系。由于基于 WiFi 信号强度值的位置指纹定位算法具有较好的定位鲁棒性,因而本系统使用它来进行室内定位。 位置指纹定位是根据终端所处位置的位置指纹信息,查询位置指纹库,根据相应的匹配算法来估计终端所处的位置6 -7.可获取的位置指纹有多种,因 RSSI 易于测量,因此遭到了广泛关注。 位置指纹定位通常分为两个阶段: 离线建库阶段和在线定位阶段。离线建库阶段首先建立一张与目的环境地理图相对应的地理空间坐标图来,然后将目的区域划分为若干采集点。采集点的密集程度及数量可根据环境而定,一般情况下,采集点越密集,定位结果越精准。对每个采集点屡次
12、扫描每个 AP 的信号强度值,扫描结果进行 平滑 处理,去除一些跳变较大的值,其余值求平均,构成 RSSI 位置指纹库。本文采用高斯滤波方式方法对信号进行 平滑 处理,之所以采取高斯滤波方式方法,是由于 RSSI 值的分布与正态分布曲线类似。根据工程中的经历体验,我们选择概率大于0.6 的范围8.经过高斯滤波处理之后的 RSSI 取【2】 根据文献9可知,AP 接入点个数为 4 个时室内环境位置指纹可知足定位精度的要求,因而将RSSI 位置指纹库的数据表设计10为 ID、X、Y、MAC1、RSSI1、MAC2、RSSI2、MAC3、RSSI3、MAC4、RSSI4 形式,华而不实 ID 为各个
13、采集点编号,X、Y 为采集点的横纵坐标,MAC1、MAC2、MAC3、MAC4 分别为 4 个 AP 接入点的物理地址,RSSI1、RSSI2、RS-SI3、RSSI4 分别为对应的信号强度平均值,也是用于定位的指纹特征。考虑到校园楼宇 AP 的布设情况,大多数楼宇都能知足一个楼层 4 个接入点或者更多的要求,这里不再另外布置 AP,而是选择平均信号强度值最大的 4 个现有 AP 进行建库。测量无线信号的设备使用华硕笔记本 A45V,测试软件是专门写的一个采集无线信号的小程序。 在线定位阶段,通过客户端扫描当下位置的实时信号强度值。为了提高数据准确性,将扫描次数定为 5 次,然后取平均值作为该
14、 AP 的实时信号强度值。将处理好的实时 RSSI 值发送至定位服务器,由定位服务器调用近期邻算法与位置指纹库进行匹配,找出与当下位置距离近期的采集点,进而估算出终端所在位置。 4 校园 LBS 系统功能模块实现 4. 1 地图服务与校内地点查询 地图服务模块采用 ArcGIS for Android 开发包提供的地图核心控件MapView 来实现对地图的加载、阅读、缩放、平移等操作。ArcGIS for Android 中将 Map-View 作为地图容器,用来呈现地图服务的数据。要显示地图图层必须将其添加到MapView 地图容器中。 首先定义MapView 对象,然后将校园地图动态图层加
15、载到 MapView 对象上,通过发布地图服务的 URL 地址对应到地图服务的 REST 接口上,实现地图服务的操作。以下为获得地图服务的关键代码。 public class CampusMapActivity extends Activity private MapView mMapView;private ArcGISDynamicMapServiceLayer mapLayer;protected void onCreate Bundle savedInstanceState super. onCreate savedInstanceState ;setContentView R. la
16、yout. campusmap ;mMapView = MapView findViewById R. id. map ;mapLayer = new ArcGISDynamicMapServiceLayer http: / /192. 168. 58. 103: 6080 / arcgis / rest / services / Cam-pusNew / MapServer ;/ / 添加校园地图图层到 MapViewmMapView. addLayer mapLayer ; 除实现地图服务的操作之外,界面中还定义了一个 EditText 和一个 Button.在 EditText 中输入地
17、点,点击 Button 完成数据解析,获得对应地点 ID,并找到位置点,实现校内地点查询。图 2 为查找 研究生部 位置的效果图。 4. 2 GPS 定位 Android 平台中,GPS 定位功能被封装在一个LocationManager 对象中。要使用 GPS 定位服务,首先应当定义 LocationManager 对象 loc,开启定位服务。服务开启之后通过 requestLocationUpdates 方式方法注册定位服务监听器 LocationListener,当下定位状态或位置发生变化时会向监听器发出通知。自定义功能在监听器函数内实现。以下为在 Android 平台上调用 GPS 定
18、位的关键代码。 LocationManager loc;Loc = LocationManager GetPositionActivity. this. getSys-temService Context. LOCATION_SERVICE ;Loc. requestLocationUpdates LocationManager. GPS_PROVIDER,0,0,new LocationListener public void onStatusChanged String provider,int status,Bundle extras / /GPS 状态变化时触发 public void
19、 onProviderEnabled String provider / /GPS 开启时触发 public void onProviderDisabled String provider / /GPS 禁用时触发 public void onLocationChanged Location location / /位置信息变化时触发 ;GPS 定位效果图如此图 3 所示,点击 获取当下位置 按钮开场定位,以红色图标告知用户定位点,以Toast 方式方法给出当下位置经纬度。 4. 3 最短途径查询 ArcGIS for Android 执行途径分析能够通过RoutingTask 类的 solv
20、e 方式方法来进行,首先将对应到网络分析服务的 REST 接口上的 URL 地址传递给RoutingTask 对象,然后调用 RoutingTask 类的 solve方式方法,并给它传递 RoutingParameters 类型的参数,就能够进行最短途径的查找。以下为获取网络分析服务,执行最短途径查询的关键代码。 TryRoutingParameters rp = new RoutingParameters ;NAFeaturesAsFeature rfaf = new NAFeaturesAsFeature ;StopGraphic point1 = new StopGraphic star
21、tPoint ;StopGraphic point2 = new StopGraphic stopPoint ;rfaf. setFeatures new Graphic point1,point2 ;rfaf. setCompressedRequest true ;rp. setStops rfaf ; rp. setOutSpatialReferencemMapView. getSpatialReference ; RoutingTask rt = newRoutingTask http: / /192. 168. 58. 103: 6080 / arcgis / rest / servi
22、ces /NewSchoolND / NAServer / Route ,null ;RoutingResult mResults = rt. solve rp ; catch Exception e E. printStackTrace ;Looper. prepare ;Looper. loop ; 最短途径查询效果如此图 4 所示,默认起点为当下位置,用户可以以自行输入起点、终点位置名称,点击 查找 按钮,完成最短途径查询。 4. 4 室内定位与服务 在线定位阶段,客户端需要扫描当下位置的信号强度值。Android 平台中,这一功能被封装在一个WifiManager 对象中。首先应当定义
23、 WifiManager 对象 wifimanager,通过 getSystemService 方式方法开启操作WiFi 的权限; 权限开启之后,建立接收器 broadcas-tReceiver,并重载 WiFi 信号的回调函数 onReceive ; 然后通过 registerReceiver 方式方法注册接收器broadcastReceiver; 最后用 startScan 方式方法启动扫描。当获得扫描结果后,触发回调函数 onReceive ,回调函数完成将扫描结果发送至定位服务器,获得定位服务器返回的结果后更新显示界面的功能。以下为 Android 平台上获取周边 AP 信号强度的关键
24、代码。 Private WifiManager wifimanager;private BroadcastReceiver broadcastReceiver;broadcastReceiver = new BroadcastReceiver public void onReceive Context arg0,Intent arg1 List ScanResult wifilist = wifimanager. getScanResults ; Wifimanager = WifiManager getSystemService Context.WIFI_SERVICE ;/ / 注册回调函
25、数registerReceiver broadcastReceiver,new IntentFilter Wifi-Manager. SCAN_RESULTS_AVAILABLE_ACTION ;/ / 启动扫描wifimanager. startScan ;室内定位效果如此图 5 所示,进行定位之前,用户根据所进入的楼宇选择显示对应的室内地图,点击 获取当下位置 按钮启动扫描,将扫描结果提交给定位服务器,获得定位服务器返回的位置信息以红色图标告知用户定位点。定位服务器估算出终端位置后,根据 new Date 方式方法获得当下时间,查询空闲教室信息表与课程信息表,将查询结果发送至客户端。查询结
26、果如此图 6所示。 5 结束语 通过对 Android 平台上的 GPS 定位、基于 WiFi的室内定位和 Mobile GIS 等各项技术的研究,设计并实现了一个校园 LBS 系统。测试结果表示清楚,该系统的各个模块能够基本知足师生对校园 LBS 服务的基本要求。但还有很多地方有待提高: 1 从整个系统看,客户端与服务器的数据传输依靠无线通信网络,数据量较大,网络不通畅时会出现无法交互的现象。 2 空间数据采集时,缺乏获取精到准确数据的专业设备,采集的数据会出现小范围误差。 3 扩展功能模块,添加周边娱乐设施查询、好友查询等等,使系统功能愈加完善。 以下为参考文献: 1 杨帆。 基于 GIS
27、 与定位技术的室内外定位系统的设计和实现D. 沈阳: 东北大学,2018. 2 林以明,罗海勇,李锦涛,等。 基于动态Radio Map 的粒子滤波室内无线定位算法J. 计算机研究与发展,2018,48 1 : 139- 146. 3 牟乃夏,刘文宝,王海银,等。 ArcGIS10 地理信息系统教程 -从初学到精通M. 北京: 测绘出版社,2020. 4 孙茜茜,陆南。 基于 Android 与 Mobile GIS 的新生报到服务系统J. 当代电子技术,2020,36 20 : 79 -83. 5 Kwok-Wai Cheung,Jonathan H M Sau,Murch R D,et al. A NewEmpirical Model for Indoor Propagation PredictionJ. IEEE Trans-actions on Vehicular Technology,1988,8 3 : 29 - 37. 6 王赛伟。 基于位置指纹的 WLAN 室内定位方式方法研宄D. 哈尔滨: 哈尔滨工业大学,2018.
限制150内