999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于位置服務的移動GIS①

2017-05-17 10:00:21洪文菊薛現斌貴州大學計算機科學與技術學院貴陽550025
計算機系統(tǒng)應用 2017年4期
關鍵詞:用戶系統(tǒng)

洪文菊, 茍 剛, 薛現斌(貴州大學 計算機科學與技術學院, 貴陽 550025)

基于位置服務的移動GIS①

洪文菊, 茍 剛, 薛現斌
(貴州大學 計算機科學與技術學院, 貴陽 550025)

隨著移動終端的普遍應用, 無線通信技術和地理信息系統(tǒng)的飛速發(fā)展, 基于位置的服務LBS(Location Based Service)與移動GIS(Geographic Information system)相結合的應用模式已成為研究熱點, 并且開拓了一個具有無限潛能的市場. 本文首先論述了基于位置服務的移動GIS的基本概念, 探討了Android開發(fā)平臺的系統(tǒng)架構與基于LBS的移動GIS體系結構, 在此基礎上設計了一個基于android平臺的移動GIS系統(tǒng), 該系統(tǒng)在傳統(tǒng)移動GIS的基礎上進行了改進, 克服了傳統(tǒng)移動GIS缺乏社交互動性的缺點, 不僅能夠實現準確的實時定位與軌跡記錄查詢, 還能夠與好友互相分享實時位置以及進行多人軌跡的同時追蹤, 可以用于對老人兒童等弱勢群體進行實時監(jiān)護, 也可以用于企業(yè)員工、車輛的管理調度等.

位置服務; 移動GIS; 移動定位

目前, 隨著智能手機的普及以及移動定位的迅速發(fā)展, 位置服務與移動GIS相結合的應用模式, 已經成為研究熱點. 許多公司、組織或者個人開發(fā)了各種基于位置服務的移動GIS應用, 這些應用大多都是基于地圖瀏覽或者個人移動定位方面, 偏向于導航功能, 而在用戶軌跡記錄及社交分享以及用戶互動方面的功能則比較少.

為了彌補以上的這些不足之處, 本文設計并開發(fā)了一款基于位置服務的可用于實時定位與軌跡分享的移動GIS, 本系統(tǒng)在實現了傳統(tǒng)移動GIS的導航與定位等基礎功能的基礎上, 還增加了軌跡記錄、歷史軌跡查詢、好友之間的位置分享及多人軌跡同時查看等功能, 以期為用戶提供更加實用便捷的位置服務.

1 基于LBS的移動GIS概念

地理信息系統(tǒng)(Geographic Information System,GIS), 是在計算機軟件、硬件和網絡的支持下, 對地理空間數據進行采集、存儲、查詢、分析和顯示的技術系統(tǒng)[1]. 移動GIS是目前地理信息系統(tǒng)研究的重要方向之一, 它在繼承了傳統(tǒng)地理信息系統(tǒng)對地理空間數據處理的基礎上, 還集成了嵌入式技術、移動計算技術、移動通信技術和定位技術, 使得地理空間數據的采集與處理更加具有靈活性與實時性. 基于位置的服務(Location Based Service, LBS), 是指移動終端利用各種定位技術獲得當前位置信息, 再通過無線網絡得到某項服務[2]. 與傳統(tǒng)的GIS相比, 基于位置服務的移動GIS具有移動性、實時性、靈活性、多樣性等特點, 能夠提供實時的空間信息“4A服務”, 已經成為了人們日常生活中的一種必不可少的信息服務.

2 Android系統(tǒng)架構

Android是一種基于Linux平臺的、開源的、智能移動終端的操作系統(tǒng), 它由谷歌公司開發(fā)而成, 近年來已逐漸成為主流的移動終端操作系統(tǒng)之一. Android操作系統(tǒng)采用分層架構設計, 從高層到低層可以分為四層架構, 分別是應用層、應用框架層、系統(tǒng)運行庫層和 Linux 內核層[3].

1) Linux內核層:基于 Linux 2.6內核開發(fā), 主要用來為Android設備的各種硬件提供底層的驅動, 如顯示驅動、音頻驅動、照相機驅動、藍牙驅動等, 它是硬件和軟件之間的抽象層.

2) 系統(tǒng)運行庫層: 通過C/C++庫來支持Android系統(tǒng)提供的各個組件或者模塊. 這一層包含有Android運行時庫, 它提供的核心庫能夠允許開發(fā)者使用Java語言來編寫Android應用. 運行時庫中還包含Dalvik虛擬機, 它專為移動設備服務, 使得每一個Android應用都能運行在獨立的進程當中.

3) 應用框架層:提供開發(fā)者構建應用程序時所需要的各種API.

4) 應用層:該層包含所有運行在Android機上的應用程序, 即開發(fā)者所開發(fā)的“手機應用”.

3 基于LBS的移動GIS體系結構

基于LBS的移動GIS主要由3部分構成: 客戶端部分、服務器部分和數據源部分[4]. 如圖1所示.

客戶端: 基于LBS的移動GIS的移動終端是一種能夠進行快速定位和地理識別的設備. 它具有方便攜帶、耗能低等特點, 并且兼容具備衛(wèi)星導航定位、加載行業(yè)應用軟件、通信和數據傳輸等基本功能. 常用的硬件設備主要包括智能手機、便攜式電腦、掌上電腦(PDA)、GPS定位儀等.

圖1 基于LBS的移動GIS體系結構圖

服務器: 系統(tǒng)的服務器包括Internet、Web Server、Map Server等組成部分. 無線通信網絡用來連接用戶與服務器, 目前主流應用的無線網絡分為基于蜂窩通信系統(tǒng)的無線網絡(GSM、GPRS、CDMA、LTE等)和無線局域網(WiFi)兩種方式. Web服務器接收客戶端提交的不同類型數據, 服務器處理邏輯將接收到的數據按照客戶端的要求在Web服務器端進行運算, 再將運算的結果返回給客戶端進行解析和顯示. GIS應用服務器提供LBS服務、空間數據分析、查詢、下載等操作[5]. 它是整個系統(tǒng)的核心部分.

數據源: 基于LBS的移動GIS系統(tǒng)包含了與地理位置有關的空間數據以及相應的屬性數據, 是地理應用服務器實現地理信息服務的數據來源. 其中屬性數據可以存儲在嵌入式數據庫中(如SQLite), 也可以存儲在服務器端的數據庫中(如SQL Server). 空間數據可以存放在本地, 作為離線地圖使用, 但考慮到空間數據的更新頻率較快, 數據量較大等因素, 通常存放在GIS應用服務器中以在線的形式進行訪問.

4 系統(tǒng)實現

本文旨在實現一個基于位置服務的移動GIS. 系統(tǒng)通過用戶移動終端的GPS或移動網絡采集用戶的實時位置信息, 用戶可以在電子地圖上查看自己的位置.同時, 系統(tǒng)可以記錄用戶移動產生的軌跡, 用戶可以通過選擇時段查詢自己在該時段中的歷史軌跡. 系統(tǒng)也集成了社交互動功能, 用戶可以添加好友, 在與好友互相開放位置之后可以查看彼此的實時位置與軌跡,同時用戶還可以建立群組, 同時查看多個群成員的軌跡情況.

4.1 總體設計

根據分析定位系統(tǒng)的業(yè)務需求與系統(tǒng)功能需求,將本系統(tǒng)的主要功能模塊設計如圖2所示.

圖2 系統(tǒng)功能模塊圖

本系統(tǒng)由移動客戶端與后臺服務器端兩部分構成.移動客戶端在Android系統(tǒng)平臺上開發(fā), 使用Android studio作為開發(fā)工具. 客戶端與服務器端采用C/S結構來進行交互, 本系統(tǒng)采用Apache作為Web服務器, 選擇SqlServer作為數據庫管理系統(tǒng).

本系統(tǒng)的移動客戶端負責接收用戶的請求和顯示結果, 直接與用戶進行交互. Web服務器負責接收客戶端的請求, 通過SQL語句等方式調用數據庫服務器,然后將數據處理的結果返回給Web服務器, 再由Web服務器傳送回客戶端.

本文主要討論基于LBS功能的實現, 因此系統(tǒng)中如添加好友、新建群等輔助功能則不再贅述.

4.2 功能實現

4.2.1 客戶端與服務器端的通信

本應用采用Volley框架來處理客戶端與服務器端的通信. 盡管Android SDK中提供了HttpClient 和HttpUrlConnection兩種方式用來處理網絡操作, 但當應用比較復雜的時候就需要我們編寫大量的代碼處理很多東西, 如圖像緩存, 請求的調度等等. 而Volley框架抽象了底層Http Client等實現的細節(jié), 使Android應用網絡操作更方便更快捷, 并且Volley在不同的線程上異步執(zhí)行所有請求而避免了阻塞主線程[6].

Volley的用法如下:

RequestQueue mQueue = Volley. newrequest Queue (context); //獲取請求列對象

StringRequest stringRequest = new StringRequest(getString(R.string.webIP), new Response. Listener<String>() {

@Override

public void onResponse(String response

) {

Log.d("TAG", response);

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse ( VolleyError error)

{

Log.e("TAG",error.getMessage(), error);

}

}); //傳入三個參數, 分別是服務器地址, 服務器響應成功回調, 服務器響應失敗的回調

mQueue.add(stringRequest);

4.2.2 登錄注冊模塊的實現

用戶使用Android客戶端時首先看到的是登錄頁面. 已經注冊了的用戶可以直接進行登錄, 沒有注冊過的用戶需要先進行注冊, 然后再登錄進入本系統(tǒng).該模塊的內部流程如圖3所示.

圖3 客戶端登錄注冊流程圖

其中部分關鍵代碼如下:

final String user = et_name. getText(). toString(). trim(); //獲取用戶輸入的用戶名

final String password = et_password. getText().toString().trim(); //獲取用戶輸入的密碼

if(TextUtils.isEmpty(user)||TextUtils.isEmpty

(password)) {

Toast.makeText(getApplicationContext(), "用戶名和密碼不能為空", Toast. LENGTH_SHORT). show () ;

return;

}

Map<String, String> map = new HashMap<String, String>();

map.put("user", user);

map.put("password", myApp.md5 (pass word));

4.2.3 定位模塊的實現

在本系統(tǒng)用戶可以在本機頁面點擊“開啟實時位置”實現自我的實時定位. 該部分的界面主要是一個MapView, 界面的底端有放大地圖與縮小地圖的按鈕,用戶也可以通過手勢拖動或放大縮小地圖. 本模塊功能實現流程如圖4所示.

圖4 定位模塊流程圖

其中部分關鍵代碼如下:

public void start() {

//新建百度地圖定位客戶端類;

mLocationClient = new LocationClient(ct);

mMyBDLocationListener = new MyBDLocationListener();

/ /注冊監(jiān)聽器;

mLocationClient.registerLocationListener(mMyBDLocat ionListener);

//創(chuàng)建定位選項;

LocationClientOption option = new Location ClientOption();

option.setLocationMode(LocationMode.Hight_Accuracy );//設置定位模式, 高精度, 低功耗, 僅設備

option.setCoorType("gcj02");//返回國測局經緯度坐標系: gcj02

option.setScanSpan(1000 * locate_time);//設置發(fā)起定位請求的間隔

option.setIsNeedAddress(true);//設置是否需要地址信息

option.setOpenGps(true);//設置是否使用gps

mLocationClient.setLocOption(option);

mLocationClient.start();

}

功能運行結果如圖5所示.

圖5 定位功能的實現

4.2.4 軌跡查詢模塊的實現

軌跡查詢分為查詢自己的歷史軌跡與查詢好友的歷史軌跡. 用戶查詢自己的歷史軌跡時, 首先設定要查找的時間段, 即軌跡的開始時間與結束時間, 時間段的設置通過datePicker與timePicker兩個類組成的時間選擇器來實現, 然后通過SQL語句查詢保存在本機SQLite數據庫中的數據, 查詢到的這些數據就是這段時間里所定位到的位置點points, 最后通過如下代碼將數據繪制成軌跡顯示在界面上.

OverlayOptions mopolyline = new PolylinOptins().width(10).color(0xAAFF0000).points(points);

mBaiduMap.addOverlay(mopolyline);

查詢本機歷史軌跡的開發(fā)流程如圖6所示.

圖6 本機歷史軌跡查詢模塊

若用戶要查詢好友的歷史軌跡, 則在用戶設定查找時間段發(fā)起請求后, 系統(tǒng)將好友的用戶ID, 查詢的起始時間通過封裝成Map鍵值對發(fā)送到服務器端, 服務器再根據這些信息在SqlServer數據庫中進行位置數據查找, 之后將結果返回給客戶端. 這部分的關鍵代碼如下:

Map<String, String> map = new HashMap <String, String>();

map.put("friend_id", show_userID);

map.put("starttime", starttime);

map.put("endtime", endtime);

webserverhelper = new WebServerHelper(get-String(R.string.webIP) + getString(R.string.get_location_ url), GET_LOCATIONS, map, baidumap. this, "", "", "get_locations", this);

webserverhelper.request();

查詢好友歷史軌跡的開發(fā)流程如圖7所示.功能運行結果如圖8所示.

圖7 好友歷史軌跡查詢模塊

圖8 軌跡查詢功能實現

6 結語

本文旨在實現一個基于位置服務的移動GIS. 針對當前的移動GIS應用缺乏社交與互動性的缺陷, 設計并實現了實時定位

首先對Android系統(tǒng)架構與移動GIS體系結構做了簡要探討, 在此基礎上研發(fā)了一套基于Android平臺的移動GIS應用系統(tǒng), 實現了實時定位、軌跡記錄、歷史軌跡查詢、好友之間的位置分享及多人軌跡同時查看等功能, 極大地提高了移動GIS的互動性與社交性, 可以對特定人員進行追蹤, 能夠滿足朋友、親人、同事之間的位置需求.

位置服務與移動GIS的密切結合開拓了一個廣闊的市場, 這一市場蘊含著巨大的商機, 無限的潛能, 相信隨著移動用戶的逐步增多, 這一市場將更加壯大, 本系統(tǒng)的設計可以為基于位置服務的移動GIS系統(tǒng)提供參考.

1 肖航宇.移動地理信息系統(tǒng)應用研究[碩士學位論文].武漢:武漢理工大學,2010.

2 Jiang B, Yao X. Location-based services and GIS in perspective. Computers, Environment and Urban Systems, 2006, 30(6): 712–725.

3 姚昱旻,劉衛(wèi)國.Android 的架構與應用開發(fā)研究.計算機系統(tǒng)應用,2008,17(11):110–112,24.

4 許穎,魏峰遠.移動 GIS 關鍵技術及開發(fā)模式探討.測繪與空間地理信息,2008,31(4):45–47.

5 陳飛翔,楊崇俊,申勝利,等.基于LBS的移動GIS研究.計算機工程與應用,2006,42(2):200–202.

6 孟遠.Android網絡通信框架Volley的解析和比較.軟件, 2014,(12):66–68.

Mobile GIS Based on Location Services

HONG Wen-Ju, GOU Gang, XUE Xian-Bin
(School of Computer Science and Technology, Guizhou University, Guiyang 550025, China)

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 with mobile GIS has become a hot research topic, and it opens up a market with unlimited potential. This paper discusses the basic concept of mobile GIS based on location services and the system architecture of Android development platform and the architecture of mobile GIS based on LBS. On the basis of this, a mobile GIS system based on Android platform is designed. The system has been improved on the basis of traditional mobile GIS, which overcomes the shortcomings of lack of social interaction in traditional mobile GIS, it not only can realize accurate real-time positioning and query trajectory, but also can share real-time location with friends and track the trajectory of many people at the same time. It can be used for real-time monitoring of the old elderly, children and other vulnerable groups, but also for employees, vehicle management scheduling.

location service; mobile GIS; mobile location

貴州省農業(yè)資源與環(huán)境信息化服務平臺關鍵技術的研究與建設(黔科合NY[2013]3078號)

2016-07-18;收到修改稿時間:2016-08-18

10.15888/j.cnki.csa.005672

猜你喜歡
用戶系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
Camera360:拍出5億用戶
主站蜘蛛池模板: 毛片在线看网站| 中文字幕日韩欧美| 女人av社区男人的天堂| 欧美a√在线| 亚洲欧美在线看片AI| 欧美精品成人| 午夜国产小视频| 大学生久久香蕉国产线观看 | 中文无码伦av中文字幕| AV熟女乱| 欧美一级高清片欧美国产欧美| 亚洲天堂网在线视频| 综合久久五月天| 一级不卡毛片| 欧美日韩精品一区二区视频| 尤物精品国产福利网站| 欧美激情视频二区| 久久a毛片| 欧美日韩成人在线观看| 国产91色| 波多野结衣久久高清免费| 国产精品成人一区二区| AV老司机AV天堂| 伊人激情综合| 中文字幕人妻av一区二区| 欧美日韩国产成人高清视频| 国产jizz| 国产迷奸在线看| 天天躁狠狠躁| 无码人妻热线精品视频| 91av成人日本不卡三区| 1769国产精品视频免费观看| 亚洲视频一区在线| 久草青青在线视频| 无遮挡国产高潮视频免费观看| 国产一区二区精品福利| 在线精品自拍| 456亚洲人成高清在线| 亚洲中文无码h在线观看 | 国产美女视频黄a视频全免费网站| 亚洲国产清纯| 国产AV无码专区亚洲精品网站| 国产美女久久久久不卡| 国产欧美日韩一区二区视频在线| 国产JIZzJIzz视频全部免费| 久久情精品国产品免费| 精品一区二区无码av| 亚洲成人精品久久| 亚洲欧美综合另类图片小说区| 久久99国产综合精品1| 伊人成人在线视频| 区国产精品搜索视频| 亚洲三级视频在线观看| 国产美女精品一区二区| 亚洲一区色| 亚洲国产理论片在线播放| 国产视频入口| 日韩欧美一区在线观看| 久草青青在线视频| 高清无码手机在线观看| 精品久久久久无码| 97成人在线视频| 91精品情国产情侣高潮对白蜜| 日本人妻丰满熟妇区| 欧洲亚洲欧美国产日本高清| 亚洲成人黄色在线| 久久国产精品麻豆系列| 99热这里只有精品5| 亚洲人成在线精品| 毛片基地视频| 97国产在线视频| 亚洲一区二区黄色| 国产精品亚洲天堂| 一本综合久久| 亚洲欧美色中文字幕| 婷婷成人综合| 日韩精品欧美国产在线| 欧美在线三级| 国产真实自在自线免费精品| 午夜精品久久久久久久无码软件| 国产精品女熟高潮视频| 国产福利一区二区在线观看|