国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于位置服務(wù)的移動GIS①

2017-05-17 10:00洪文菊薛現(xiàn)斌貴州大學(xué)計算機科學(xué)與技術(shù)學(xué)院貴陽550025
計算機系統(tǒng)應(yīng)用 2017年4期
關(guān)鍵詞:位置服務(wù)服務(wù)器端好友

洪文菊, 茍 剛, 薛現(xiàn)斌(貴州大學(xué) 計算機科學(xué)與技術(shù)學(xué)院, 貴陽 550025)

基于位置服務(wù)的移動GIS①

洪文菊, 茍 剛, 薛現(xiàn)斌
(貴州大學(xué) 計算機科學(xué)與技術(shù)學(xué)院, 貴陽 550025)

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

位置服務(wù); 移動GIS; 移動定位

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

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

1 基于LBS的移動GIS概念

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

2 Android系統(tǒng)架構(gòu)

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

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

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

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

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

3 基于LBS的移動GIS體系結(jié)構(gòu)

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

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

圖1 基于LBS的移動GIS體系結(jié)構(gòu)圖

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

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

4 系統(tǒng)實現(xiàn)

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

4.1 總體設(shè)計

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

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

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

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

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

4.2 功能實現(xiàn)

4.2.1 客戶端與服務(wù)器端的通信

本應(yīng)用采用Volley框架來處理客戶端與服務(wù)器端的通信. 盡管Android SDK中提供了HttpClient 和HttpUrlConnection兩種方式用來處理網(wǎng)絡(luò)操作, 但當應(yīng)用比較復(fù)雜的時候就需要我們編寫大量的代碼處理很多東西, 如圖像緩存, 請求的調(diào)度等等. 而Volley框架抽象了底層Http Client等實現(xiàn)的細節(jié), 使Android應(yīng)用網(wǎng)絡(luò)操作更方便更快捷, 并且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);

}

}); //傳入三個參數(shù), 分別是服務(wù)器地址, 服務(wù)器響應(yīng)成功回調(diào), 服務(wù)器響應(yīng)失敗的回調(diào)

mQueue.add(stringRequest);

4.2.2 登錄注冊模塊的實現(xiàn)

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

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

其中部分關(guān)鍵代碼如下:

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 定位模塊的實現(xiàn)

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

圖4 定位模塊流程圖

其中部分關(guān)鍵代碼如下:

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 );//設(shè)置定位模式, 高精度, 低功耗, 僅設(shè)備

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

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

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

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

mLocationClient.setLocOption(option);

mLocationClient.start();

}

功能運行結(jié)果如圖5所示.

圖5 定位功能的實現(xiàn)

4.2.4 軌跡查詢模塊的實現(xiàn)

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

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

mBaiduMap.addOverlay(mopolyline);

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

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

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

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所示.功能運行結(jié)果如圖8所示.

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

圖8 軌跡查詢功能實現(xiàn)

6 結(jié)語

本文旨在實現(xiàn)一個基于位置服務(wù)的移動GIS. 針對當前的移動GIS應(yīng)用缺乏社交與互動性的缺陷, 設(shè)計并實現(xiàn)了實時定位

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

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

1 肖航宇.移動地理信息系統(tǒng)應(yīng)用研究[碩士學(xué)位論文].武漢:武漢理工大學(xué),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 的架構(gòu)與應(yīng)用開發(fā)研究.計算機系統(tǒng)應(yīng)用,2008,17(11):110–112,24.

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

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

6 孟遠.Android網(wǎng)絡(luò)通信框架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

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

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

10.15888/j.cnki.csa.005672

猜你喜歡
位置服務(wù)服務(wù)器端好友
Linux環(huán)境下基于Socket的數(shù)據(jù)傳輸軟件設(shè)計
屬羊
刪除好友
基于Qt的安全即時通訊軟件服務(wù)器端設(shè)計
路測數(shù)據(jù)驅(qū)動的移動終端定位方法
基于Qt的網(wǎng)絡(luò)聊天軟件服務(wù)器端設(shè)計
智能車輛專利技術(shù)綜述
Beacon技術(shù)在圖書館信息服務(wù)中的應(yīng)用研究
基于GPS和iBeacon的智能校園信息發(fā)布平臺設(shè)計與實現(xiàn)
基于C/S架構(gòu)的嵌入式監(jiān)控組態(tài)外設(shè)擴展機制研究與應(yīng)用