基于Android的GPS轨迹定位系统的设计与实现外文翻译资料

 2022-12-24 17:01:51

英语原文共 4 页,剩余内容已隐藏,支付完成后下载完整资料


基于Android的GPS轨迹定位系统的设计与实现

Pengcheng Zhang, Jingyu Sun, Jiehua Wang, Quan Shi*

南通大学计算机科学与技术学院,江苏省南通市226019,通讯作者:sq@ntu.edu.cn。

关键词:安卓系统;位置;轨迹;百度地图

摘要:为了满足地理位置场景的多样化需求,设计并实现了一个基于地理位置的智能手机应用。该应用程序基于Android平台,使用百度地图API作为工具,通过地理信息的主动推送实现实时监控。它基本上可以满足地理位置共享和生活和工作监控的需要。针对百度地图网络定位和GPS定位的偏差,提出了优化方案。

引言

随着科技的发展,移动终端技术与我们的生活密不可分。基于Android的各种应用软件开发软件的数量近年来呈快速增长态势。例如,移动搜索、移动定位、移动电话监控、流媒体应用和许多数据服务被广泛使用[1]。基于Android技术的定位具有非常广泛的应用范围。通过共享地理信息,我们可以实现多个定位和轨迹跟踪,让用户关心需要关心的人。为公司地理监控、调度管理、家庭护理等提供有效的解决方案。

系统架构设计

Android平台 Android是基于linux的开源移动操作系统。谷歌在2007年发布并发布了最初的开发。系统采用分层架构,包括Linux内核、Android运行时、应用程序框架和应用。Android平台的开放性和兼容性也很好。

定位模式

基站定位 通信信号由一个基站发送到多个已知位置,其中有基站位置信息。当移动终端接收到这些信号时,可以确定几何位置关系。然后,根据一些具体的相关算法对自己的位置进行估计。终端可以得到位置信息。

网络定位 该定位技术通过固定通信基站接收目标通信信号,确定信息的准确性。此外,它还需要定位移动终端来发出一些特殊的通信信号。

GPS定位 GPS(全球定位系统)是由美国国防部建立的无线电导航定位系统,以适应其军事导航和定位。GPS系统利用卫星在高速运动中的瞬时位置作为原始数据,然后通过空间距离交叉的方法确定位置的经度和纬度坐标。

系统使用百度地图API实现定位。它将根据GPS的可用性、网络情况和其他实际情况选择合适的定位方式。

系统架构

图1给出了位置共享框架的基本原理图。位置推送的实现步骤如下:

  1. 客户端通过调用百度地图定位API收集和处理数据。这些数据可以通过过滤大的精度点和提高定位频率来提高精度。
  2. 客户端使用volley网络框架向服务器发送信息。Volley非常适合于小数据量的高频网络请求[3]。它满足了GPS数据传输场景的高频率。
  3. 服务器将数据存储到数据库中,并通过消息推送将信息推送到另一个客户端。消息推送是基于TCP的长期连接活动行为[4]。
  4. 客户端通过广播接收器接收和解析JSON格式数据,并将其绘制到地图覆盖层。

图1:系统架构图

图2:系统功能图

当用户登录系统,搜索并添加其他用户时,用户是观察者,而另一个是被观察者。当观察到的开始记录位置时,系统将位置信息发送到服务器,服务器将信息推送给观察者。“后推”过程可以定义“一对多”模型的关系。该系统能在5秒内捕捉到手机的变化,基本满足实时监控的要求。

考虑到监控可能是相互的,系统授权用户为观察者和被观察者。它能极大地满足工作和生活中的各种位置监控场景。

系统功能设计

如图2所示,系统可以分为四个不同的模块。在地图控制模块中,地图视图可以移动、旋转、缩放等。用户可以监控他人的位置,并使用离线地图。在轨道管理模块中,系统可以在地图上绘制用户的移动轨迹并直接显示给用户。在信息管理模块中,用户可以查看以往记录的详细信息,并可以检查和编辑个人信息。

地图模块。需要申请百度地图API密钥,下载SDK并集成到项目中。然后将地图视图控件放置到布局文件中,并在活动中初始化映射。通过控制mBaidumap,可以实现map、zoom ratio、cover、positioning display等功能的显示模式。核心代码如下:

mBaiduMap = mMapView.getMap();

MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(18.0f);

mBaiduMap.setMapStatus(msu);

mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);//set satellites map

MyLocationData data = new MyLocationData.Builder()

.accuracy(location.getRadius())

.latitude(location.getLatitude())

.longitude(location.getLongitude())

.build();

mBaiduMap.setMyLocationData(data);// set position

当开始记录位置时,观察者客户端使用广播接收器来获取位置信息,并通过Android提供的可观察到的方式发送到活动。当用户在信息窗口中按下跟踪按钮时,用户可以实时查看彼此的轨迹。当观察到的位置异常时,用户可以点击手机按钮直接呼叫。

轨迹模块 该模块主要实现了轨迹的实时绘制和历史轨迹的自适应视图。轨迹的实时绘制使用纬度和经度点在地图覆盖上直接绘制直线。代码如下:

.nowlocal = local; //local is the latitude and longitude point that is currently located drawTrace();

lastlocal = nowlocal;

由于路线的轨迹是长而短的,所以地图的变焦比默认为50米。为了直观地显示轨迹,可以自由缩放地图。该系统使用LatLngBounds构造一个具有所有纬度和经度点的生成器对象,并通过MapStatusUpdateFactory实现映射自适应的轨迹。

关注模块 该系统使用好友列表,分为“关注”列表和“被关注”列表。“好友”列表有用户名和头像,按字母顺序排列。由于大量的用户列表图像加载可能导致OOM(内存溢出、内存泄漏)问题,所以使用DiskLruCache(磁盘缓存)和LruCache(内存缓存)来实现图像二级缓存。其原则如下:

a.设置LruCache的缓存大小,并释放未显示的图片缓存。

b.在列表适配器中,ImageLoader根据图片的URL在内存中查找图片,如果存在,则加载,否则返回c。

c.ImageLoader根据图片URL MD5值在磁盘中查找图片,如果存在,则加载并存储在内存中,否则就会出现d。

d.ImageLoader通过URL在服务器上获取图片,加载并存储在内存和磁盘中。

位置和精度优化

后台服务位置 实际上,当定位功能打开时,主屏幕并不总是显示。因此,我们需要记录位置,保存数据,并通过后台服务上传至服务器。为了解决startService和bindService disanvatages的问题,他们将一起工作。实现过程如下:

a.创建在map活动中启动服务的Intent和ServiceConnection实例。

b.初始化定位服务中的目标设置。

c.调用startService(Intent i)和bindService(Intent i, ServiceConnection con, int标记)来启动服务。

d.在onserviceconncallback方法中从绑定实例获取服务对象。

e.在LocationService中,通过BDLocationListener访问位置和上传的数据,并将其存入本地数据库并回调到活动。

如果活动存在,调用服务对象的监视方法,然后在地图上显示定位或绘制轨迹。如果没有,服务仍然定位,并准备下一次。

优化定位精度 如果GPS被打开,百度地图的高精度定位将利用网络定位和GPS定位来获得高精度的定位结果。否则,设备将使用网络定位结果,只包含可能导致较大偏差的纬度和经度。该系统为解决这一问题提供了一些方法。当GPS关闭,信号正常时,网络定位的精度约为4000米。否则,精度将超过1米,锚点可跳100米。

如果用这种方法画轨迹,用户体验较差。因此,优化方法如下:

a.增加定位频率。例如,把每一个5s改为每一个1s。

b.过滤精度大点。筛选出更准确的定位点。

c.过滤跳点。当信号不好时,可以排除一些点。

但是,当信号持续很长时间时,所有的点都会被过滤掉,并且会被破坏。如果GPS被打开,在普通信号下定位精度为3m到5m。但是,地点仍然可能有很大的偏差。在这种情况下,系统使用卡尔曼滤波[5]来优化轨迹。系统根据之前的差异计算纬度和经度值的最优权重,并重新计算当前时间方差。结果如图3和图4所示。

图3:轨迹优化前 图4:优化轨迹后

总结

该系统使用Android开发技术和百度地图API开发基于位置的服务(LBS) Android应用程序。该应用可以实现实时位置交换、监控和步行路线共享。该应用程序简单易用,运行流畅,用户友好,用户可以自己记录或注意其他行走路线。该系统可广泛应用于企业管理调度、儿童与老年人护理、旅游共享等领域。为人们的生活和工作带来便利。

致谢

这项工作得到了江苏省自然科学基金(BK20151272)、江苏省“333”项目人才(BRA2015356)、江苏省6名优秀人才(2014-WLW-029)、江苏省生产和研究技术项目(2016053-08)、大学生创新培训项目(201610304025Z)的支持。

引用

  1. Yan Li. Research on mobile phone location and search technology based on Android platform [J]. electronic world, 2013 (19): 14-14. In Chinese.
  2. Xiaohui Liu. Overview of GPS system and its positioning principle [J]. science and technology information, 2006 (6): 11-11. In Chinese.
  3. Yuan Meng. Analysis and Comparison of Android Network Communication Framework Volley [J]. Software, 2014 (12): 66-68. In Chinese.
  4. Haizhan Wang, Meng Di, Xianglin Huang. Design and implementation of Android message push based on XMPP protocol [J].science and Technology Square, 2015 (2):40-46. In Chinese.
  5. Dai Pinxuan, Li Zhen, Wang Jie.Research on Map-matching Algorithm Using Kaman Filter to Improve Localization Accuracy from Baidu Map Based on Android[C]6th International Conference on Information Technology for Manufacturing Systems,2016:249-253.

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[24741],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。