您的当前位置:首页正文

基于位置服务的移动GIS

2020-11-06 来源:我们爱旅游
2017年第26卷第4期 http://www.c—S-a.org.cn 计算机系统应用 基于位置服务的移动GIS① 洪文菊,苟刚,薛现斌 (贵州大学计算机科学与技术学院,贵阳550025) 摘要:随着移动终端的普遍应用,无线通信技术和地理信息系统的飞速发展,基于位置的服务LBS(Location Based Service)与移动GIS(Geographic Information system)相结合的应用模式己成为研究热点,并且开拓了一个具 有无限潜能的市场.本文首先论述了基于位置服务的移动GIS的基本概念,探讨了Android开发平台的系统架构 与基于LBS的移动GIS体系结构,在此基础上设计了一个基于android平台的移动GIS系统,该系统在传统移动 GIS的基础上进行了改进,克服了传统移动GIS缺乏社交互动性的缺点,不仅能够实现准确的实时定位与轨迹记 录查询,还能够与好友互相分享实时位置以及进行多人轨迹的同时追踪,可以用于对老人儿童等弱势群体进行 实时监护,也可以用于企业员工、车辆的管理调度等. 关键词:位置服务;移动GIS;移动定位 Mobile GIS Based on Location Services HONG Wlen—Ju,GOU Gang,XUE Xian—Bin (School of Computer Science and Technology,Guizhou University,Guiyang 550025,China) Abstract:With the rapid development of mobile terminal technology,wireless communication network technology and the universal application of geo—spatial information in all walks of life,the application mode that combines LBS wih tmobile G/S has become a hot research topic,and it opens up a market with unlimited potentia1.This paper discusses the basic concept of mobile GIS based on location services and the system architecture of Android development pltform and tahe architecture of mobile GIS based on LBS.On the basis of this,a mobile GIS system based on ndAroid platform is designed.The system has been improved on he tbasis of traditional mobile GIS,which overcomes he tsho ̄comings of lack of social interaction in traditional mobile GIS,it not only can realize accurate real—time positioning and query rtajectory,but also Can share real-time location with friends and track the trajectory of many people at he tsame time.It Can be used for real—time monitoring of he old eltderly,chilren and otdher vulnerable groups,but also for employees, vehicle management scheduling. Key words:location service;mobile GIS;mobile location 目前,随着智能手机的普及以及移动定位的迅速发 展,位置服务与移动GIS相结合的应用模式,已经成为研 究热点.许多公司、组织或者个人开发了各种基于位置服 务的移动GIS应用,这些应用大多都是基于地图浏览或 者个人移动定位方面,偏向于导航功能,而在用户轨迹 了一款基于位置服务的可用于实时定位与轨迹分享的 移动GIS,本系统在实现了传统移动GIS的导航与定 位等基础功能的基础上。还增加了轨迹记录、历史轨 迹查询、好友之问的位置分享及多人轨迹同时查看等 功能,以期为用户提供更加实用便捷的位置服务. 记录及社交分享以及用户互动方面的功能则比较少. 为了弥补以上的这些不足之处,本文设计并开发 1基于LBS的移动GIS概念 地理信息系统(Geographic Information System, ①基金项目:贵州省农业资源与环境信息化服务平台关键技术的研究与建设(黔科合NY[201313078号) 收稿时间:2016—07—18;收到修改稿时f ̄:2016—08—18【doi:10.15888/j.cnki.csa.005672] Research and Development研究开发241 汁算机系统心川 http://www.C—S—a.org.cn 2017 筇26珏 4期 GIS),足在汁算机软什、硬什和网络的支持下,对地 问数据进行采集、存储、 询、分析和 尔的技术 系统….移动GIS足H前地理信息系统研究的霞要疗 带、耗能低等特点,并且兼容 箭『J 舟,【定化、加 载行、 用软件、通信和数据传输等艰小助能.常用 的 什设备丰要包括智能于机、使携 }U腑、学t电 向之…,它存继承了传统地理信息系统对地理 问数 据处理的 础 ,还集成了『扶入式技术、移动计算技 术、移动通信技术和定化技术,使得地理窄问数据的 采集与处理更加具有 活性与实时性.基丁 位置的服 务(Location Based Service,LBS),是指移动终端利刖 月I ̄j(PDA)、GPS定位仪等. 十LBS的移动G JS 各种定位技术获得 前化胃信息, 冉通过无线网络 得到某项服务I .与传统的GIS相比,基于位置服务的 移动GIS具有移动 、实时性、灵活 、多样性等特 点,能够提供实时的 i'HJf; ̄息“4A服务”,已经成为了 人们f=1常生活叫】的‘种必不呵少的信息服务. 2 Android系统架构 Android足一种旗J Linux平台的、开源的、智能 移动终端的操作系统,它山谷歌公司开发而成,近 来已逐渐成为主流的移动终端操作系统之 .Android 操作系统采用分层架构设汁,从高层到低层叮以分为 层架构,分别是 用层、应用框架层、系统运行库 层和Linux内核 【j J. 11 Linux内核层: r Linux 2.6内核开发, 丰要 用来为Android设桥的 种硬件提供底层的驱动,如 示驱动、音频驱动、照相机驱动、蓝牙驱动等,它 是硬件和软件之问的抽象层. 2)系统运行库层:通过C/C++库米支持Android 系统提供的各个组什或者模块.这一层包含有 Android运行时库,它提供的核心库能够允许开发者 使用Java语苦来编写Android应用.运行时库中还包 含Dalvik虚拟机,它 为移动设备服务,使得每一个 Android应用都能运行 独立的进程当中. 31应用框架层:提供丌发者构建应用程序时所需 要的各干叶 API. 4)应用层:该 包含所柯运行在Android机上的 用程序,即丌发者所开发的“于机应用”. 3基于LBS的移动GIS体系结构 基于LBS的移动GIS主要由3部分构成:客户端 部分、服务器部分和数据源部分 引.如图1所示. 客户端:基于LBS的移动GIS的移动终端足一种 能够进行快速定位和地理识别的设备.它具有方便携 242研究开发Research and Development 髯 端 服务器 数据源 钾能手机 便携电脑 无线I删络 7ll' 数 件 I 电脑 wel1服务器 i'数拼 Gps定位仪 GlS服务器 1 基J LBS的移动GIS体系结构 服务器:系统的服务器包括Internet、Web Sener、 Map Server等组成部分.无线通信 络用米连接朋户 服务器,日前丰流应用的尤线网络分为琏J:蜂窝通 信系统n勺 线网络(GSM、GPRS、CDMA、LTE )和 见线硒域网(WiFi)两种方式.Web服务器接收客广1端提 交的小IIIJ类型数据,服务器处理 辑将接收剑的数据 按j!《{ 』、 端的要求存Web服务器端进仃运算,I 将运 算的结果返 给客户端进行解析和 示.GIS J 用服 务器提供LBS服务、空间数据分析、 i干{J、卜找等操 作 J.它足整个系统的核一 部分. 数据源:基』 LBS的移动GIS系统也含r 地理 他 fj 火的窄问数据以及棚 的属性数捌,足地理应 川服务器实现地理信息服务的数据来源.其【}l I性数 【I『以 储在嵌入式数据库中(如SQLite),也I,J-以存 储( ̄-fllJ.务器端的数据库中(如SQL Server). ftiJ数据 I・J.以仃放存本地,作为离线地图使用,但考虑到 间 数据的更新频率较快,数据量较人等 索,通常存放 GIS 用服务器中以在线的形式进行访问. 4系统实现 本文旨在实现一个基于位置服务的移动GIS.系 统通过,『J户移动终端的GPS或移动 络采集用广,的实 时化置信息,用户町以往电子地图卜 看ft已的位置. 时,系统可以记录用, ,移动产生的轨迹,』{】, 叮以 通过选择时段查询自己在该时段中的历史轨迹.系统 2017年第26卷第4期 http://www.C-S・a.org.cn ‘算机系统应用 也集成了社交互动功能,用户可以添加好友,在与好 友互相开放位置之后可以查看彼此的实时位置与轨迹, Volley的用法如下: RequestQueue mQueue=Volley.newrequest Queue 同时用户还可以建立群组,同时查看多个群成员的轨 迹情况. 4.1总体设计 (context);//获取请求列对象 StringRequest stringRequest=new StringReque- st(getString(R.string.weblP),new Response.Listen— 根据分析定位系统的业务需求与系统功能需求, er<String>(){ 将本系统的主要功能模块设计如图2所示. 摹F"LBS的穆动GiS @Override public void onResponse(String response ){ Log.d(”TAG”,response); …1¨1一j蔓 …T … ~]一一一厂1 I  I_]I } },new Response.ErrorListener(){ 蹇 蓁萋 茎差 窭 薹垂 茎垂  }蓁L _蓁I, _t  iL 萎] 本系统由移动客户端与后台服务器端两部分构成 移动客户端在Android系统平台上开发,使用Android studio作为开发工具.客户端与服务器端采用C/S结构 来进行交互,本系统采用Apache作为Web服务器,选 @Override public void onErrorResponse(VolleyError error) { Log.e(”TAG",error.getMessage0,error); } });II'f#入三个参数,分别是服务器地址,服务器响 应成功回调,服务器响应失败的回调 mQueue.add(stringRequest); 4.2.2登录注册模块的实现 用户使用Android客户端时首先看到的是登录页 面.已经注册了的用户可以直接进行登录,没有注册 择SqlServer作为数据库管理系统. 本系统的移动客户端负责接收用户的请求和显示 结果,直接与用户进行交互.Web服务器负责接收客户 端的请求,通过SQL语句等方式调用数据库服务器, 过的用户需要先进行注册,然后再登录进入本系统. 该模块的内部流程如图3所示. 歼始 N 注珊十一 然后将数据处理的结果返回给Web服务器,再由Web 服务器传送回客户端. 注册成功 — 本文主要讨论基于LBS功能的实现,因此系统中 如添加好友、新建群等辅助功能则不再赘述. 4.2功能实现 4.2.1客户端与服务器端的通信 本应用采用Volley框架来处理客户端与服务器端 的通信.尽管Android SDK中提供了HttpClient和 \ l v 进入系统: 差曼呵_一 HttpUrlConnection两种方式用来处理网络操作,但当 应用比较复杂的时候就需要我们编写大量的代码处理 图3 客户端登录注册流程图 很多东西,如图像缓存,请求的调度等等.而Volley框 架抽象了底层Http Client等实现的细节,使Android 应用网络操作更方便更快捷,并且Volley在不同的线 程上异步执行所有请求而避免了阻塞主线程【6]. 其中部分关键代码如下: inalf String user=etname.getText0.toString0. trim();//获取用户输入的用户名 inalf String password=etpassword.getTextO. _Research and Development研究开发243 汁算机系统应用 http://www.C—S—a.org.cn 2017年第26卷第4期 toString0.trim();//扶取用户输入的密码 LOcationC1ient0ptiOn option : new Location if(TextUtils.isEmpty(user)llTextUtils.isEmpty (password)){ Toast.makeText(getApplicationContext(),”川户名 ClientOption0; option.setLocationMode(LocationMode.HightAccuracy T 唤撼 醒地固 一 );//设置定位模式,高精度,低功耗,仅设备 和密码不能为 ”,Toast.LENGTHSHORT) show 0; option.setCoorType(”gcj02”);//返 陶测局经纬度 ^I^标系:gcj02 ] 目 .一u上  一return; _肇= ¨l; _L L 一 .耳 } Map<String,String>map=new HashMap<String, option.setScanSpan(1000 locatetime);//设置发起 定何请求的问隔 String>(); map.put("HSCF”,user); option.setlsNeedAddress(true);//设置足否需要地址 信息 上 map.put(”password”,myApp.md5(pass word)); option.setOpenGps(true);//设置足否使用gps注册定位监听 上  设铨定 进 上 mLocationClient.setLocOption(option); j 4.2.3定位模块的实现 木系统川广1可以 :木机页面点。 开启实时位 ”实现白我的实时定位.陔部分的 而丰要是一个 MapView,界面的底端有放火地图与缩小地 的按钮, mLocationClient.start(); } 功能运行结果如图5所示. 用户也町以通过于势拖动或放大缩小地图.本模块功 能实现流程如 4所不. ^;GPS k取MapV Jew、 LocationOientOptIon 。 i I 8DkocationListener ̄,J馨 - …氟 絮 嚣 …~1 ‘ LocationClient r…; ——……~]一一‘~一0 时蒙实例化 一r一…一{ 对象实例化 一{| § 一一 MapView locationClientOption BOLocationListener 对象实例化 刘敦蛮例化 4.2.4轨迹查询模块的实现 轨迹查询分为查询自己的历史轨迹与查询好友的 历史轨迹.用户查询自己的历史轨迹时,首先设定要 图4定位模块流程图 查找的时问段,即轨迹的开始时间与结束时问,时间 段的设置通过datePicker与timePicker两个类组成的时 其中部分关键代码如下: public void start(){ 问选择器米实现,然后通过SQL语句查询保存在本机 SQLite数据库中的数据,查询到的这 数据就足这段 时问里所定位到的位置点points,最后通过如卜代码 将数据绘制成轨迹 示在界面上. OverlayOptions mopolyline=new PolylinOptin— //新建百度地图定位客户端类; mLocationC1ient=new LocationC1ient(ct); mMyBDLocationListener=new MyBDLocati— onListener0; //注册 听器: mLocationClient.registerLocationListener(mMyBDLocat s0.width(1 0).color(OxAAFFO000).points(points); mBaiduMap.addOverlay(mopolyline); ionListener); 查询本机历史轨迹的开发流程如图6所示. //创建定位选项: 244研究开发Research and Development 2017年第26卷第4期 http://www.c—S—a.org.cn 计算机系统应用 本机轨迹贞面 功能运行结果如图8所示 SQLite数据库 …一 _f 图8轨迹查询功能实现 轨迹显示界面 图6本机历史轨迹查洵模块 若用户要查询好友的历史轨迹,则在用户设定查 找时间段发起请求后,系统将好友的用户ID,查询的 起始时间通过封装成Map键值对发送到服务器端,服 6结语 本文旨在实现一个基于位置服务的移动GIS.针 对当前的移动GIS应用缺乏社交与互动性的缺陷,设 计并实现了实时定位 务器再根据这些信息在SqlServer数据库中进行位置 数据查找,之后将结果返回给客户端.这部分的关键 代码如下: Map<String,String>map=new HashMap<String, 首先对Android系统架构与移动GIS体系结构做 了简要探讨,在此基础上研发了一套基于Android平 台的移动GIS应用系统,实现了实时定位、轨迹记录、 历史轨迹查询、好友之间的位置分享及多人轨迹同时 String>(); d”,showusermap.put(”friendilD); _查看等功能,极大地提高了移动GIS的互动性与社交 map.put(”starttime”,starttime); map.put(”endtime”,endtime); webserverhelper=new WebServerHelper(get— String(R.string.webIP)+getString(R.string.get_location性,可以对特定人员进行追踪,能够满足朋友、亲人、 同事之间的位嚣需求. 位置服务与移动GIS的密切结合开拓了一个广阔的 市场,这一市场蕴含着巨大的商机,无限的潜能,相信 随着移动用户的逐步增多,这一市场将更加壮大,本系 ur1),GET_LOCATIONS,map,baidumap.this,…’,…’, ”getlocations”,this); _webserverhelper.request0; 统的设计可以为基于位置服务的移动GIS系统提供参考. 参考文献 1肖航宇.移动地理信息系统应用研究[硕士学位论文】.武汉: 武汉理工大学,2010. 2 Jiang B.Yao X.Location—based services and GIS in pe ̄pecfive. 查询好友历史轨迹的开发流程如图7所示. …~ __l_l ____]一 ……一1 sqIserver数据库查找 Computers,Environment and Urban Systems,2006,30(6): 712-725. 3姚昱曼,刘卫国.Android的架构与应用开发研究.计算机系 统应用,2008,l7(11):ll0L_l12,24. ¨¨丁母暮 _ 一_ _4许颖,魏峰远.移动GIS关键技术及开发模式探讨.测绘与 空问地理信息,2008,3l(4):45_47. 5陈飞翔,杨崇俊,申胜利,等.基于LBS的移动GIS研究.计算 机工程与应用,2006,42(2):200-202. 图7好友历史轨迹查询模块 6孟远.Android网络通信框架Volley的解析和比较.软件, 2014,(12):66-68. Research and Development研究开发245 

因篇幅问题不能全部显示,请点此查看更多更全内容