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

基于位置服務的移動GIS①

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

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

基于位置服務的移動GIS①

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

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

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

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

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

1 基于LBS的移動GIS概念

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

2 Android系統架構

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

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

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

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

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

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

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

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

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

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

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

4 系統實現

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

4.1 總體設計

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

圖2 系統功能模塊圖

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

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

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

4.2 功能實現

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

本應用采用Volley框架來處理客戶端與服務器端的通信. 盡管Android SDK中提供了HttpClient 和HttpUrlConnection兩種方式用來處理網絡操作, 但當應用比較復雜的時候就需要我們編寫大量的代碼處理很多東西, 如圖像緩存, 請求的調度等等. 而Volley框架抽象了底層Http Client等實現的細節, 使Android應用網絡操作更方便更快捷, 并且Volley在不同的線程上異步執行所有請求而避免了阻塞主線程[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客戶端時首先看到的是登錄頁面. 已經注冊了的用戶可以直接進行登錄, 沒有注冊過的用戶需要先進行注冊, 然后再登錄進入本系統.該模塊的內部流程如圖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 定位模塊的實現

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

圖4 定位模塊流程圖

其中部分關鍵代碼如下:

public void start() {

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

mLocationClient = new LocationClient(ct);

mMyBDLocationListener = new MyBDLocationListener();

/ /注冊監聽器;

mLocationClient.registerLocationListener(mMyBDLocat ionListener);

//創建定位選項;

LocationClientOption option = new Location ClientOption();

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

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

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

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);

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

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

若用戶要查詢好友的歷史軌跡, 則在用戶設定查找時間段發起請求后, 系統將好友的用戶ID, 查詢的起始時間通過封裝成Map鍵值對發送到服務器端, 服務器再根據這些信息在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();

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

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

圖8 軌跡查詢功能實現

6 結語

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

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

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

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

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

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

4 許穎,魏峰遠.移動 GIS 關鍵技術及開發模式探討.測繪與空間地理信息,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

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

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

10.15888/j.cnki.csa.005672

猜你喜歡
用戶系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 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億用戶
創業家(2015年10期)2015-02-27 07:55:08
主站蜘蛛池模板: 无码高潮喷水在线观看| 亚洲成a人片| 97久久免费视频| av一区二区三区高清久久| 免费国产高清精品一区在线| 日韩欧美中文在线| 久久国产精品影院| 女同久久精品国产99国| 午夜三级在线| 久久77777| 久久精品人人做人人综合试看 | 国产激爽爽爽大片在线观看| 亚洲欧美精品日韩欧美| 亚洲AⅤ永久无码精品毛片| 99精品热视频这里只有精品7| 成人亚洲视频| 男女猛烈无遮挡午夜视频| 99青青青精品视频在线| 内射人妻无套中出无码| 国产一区二区三区夜色| 一级福利视频| 久久亚洲黄色视频| 久久精品欧美一区二区| 99久久精品美女高潮喷水| 国产精品任我爽爆在线播放6080| 免费毛片全部不收费的| 国模视频一区二区| 尤物特级无码毛片免费| 亚洲日韩每日更新| 亚洲欧洲天堂色AV| 亚洲综合色在线| 日本成人在线不卡视频| 国产成人乱码一区二区三区在线| 日本成人在线不卡视频| 久久久久无码精品| 亚洲国产第一区二区香蕉| 亚洲成人精品| 欧美啪啪网| 91欧美在线| 亚洲成年人片| 国产黄色片在线看| 波多野结衣中文字幕久久| 成人精品亚洲| 国产a v无码专区亚洲av| 国产精品男人的天堂| 日韩精品免费一线在线观看| 午夜日b视频| 国产精品夜夜嗨视频免费视频| 国产欧美日韩资源在线观看| 婷婷亚洲天堂| 欧美黄网在线| 中文毛片无遮挡播放免费| 一区二区三区成人| 国产成人在线无码免费视频| 999精品在线视频| 中文字幕在线永久在线视频2020| 精品久久综合1区2区3区激情| 91在线一9|永久视频在线| 欧美在线导航| 最新国语自产精品视频在| 在线观看亚洲国产| 精品黑人一区二区三区| 亚洲性一区| 国产精品视频导航| 国产第三区| 欧美色伊人| 精品久久人人爽人人玩人人妻| 视频一区视频二区中文精品| 亚洲Av激情网五月天| 日本精品视频一区二区| 欧美日韩动态图| 成年女人18毛片毛片免费| 99偷拍视频精品一区二区| 色综合久久无码网| 波多野一区| 国产剧情伊人| 国产主播在线一区| 国内精品一区二区在线观看| a毛片基地免费大全| 国产一级特黄aa级特黄裸毛片| 中文字幕不卡免费高清视频| 亚洲精品不卡午夜精品|