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

?

基于Xamarin的智慧城市跨平臺移動終端的設(shè)計與實現(xiàn)

2021-04-28 10:19:58月,郭佳,黃
現(xiàn)代測繪 2021年1期
關(guān)鍵詞:跨平臺服務(wù)器端用戶

邱 月,郭 佳,黃 俊

(1.江蘇省測繪工程院,江蘇 南京 210013;2.太倉市自然資源和規(guī)劃局,江蘇 蘇州 215400)

0 引 言

科技的狂潮中,智能手機基本普及廣大民眾手中,移動互聯(lián)網(wǎng)得到了迅猛的發(fā)展,移動應(yīng)用使用也開始普及[1-2],移動App的出現(xiàn)為大眾訪問在線地理信息服務(wù)提供更多便利,也為政府機構(gòu)提供工作上的便利。2019年智慧城市大綱建設(shè)對移動平臺建設(shè)內(nèi)容有明確要求,將移動GIS發(fā)展方向明確化[3]。移動GIS擺脫了位置靜止和有線連接的束縛,能夠提供空間信息服務(wù),已成為人民日常生活中重要的信息獲取方式[4]?,F(xiàn)今移動終端(手機和平板)的操作系統(tǒng)主要是Android和iOS,任何新開發(fā)的App,都需要開發(fā)人員開發(fā)兩套程序來支持這兩個系統(tǒng)。因此采用跨平臺的開發(fā)方式使得兩套程序共享一套代碼,可大幅提高開發(fā)效率。

采用基于Xamarin跨平臺的框架設(shè)計并實現(xiàn)了全新的智慧城市跨平臺移動終端,該框架使用一套代碼生成可以運行于Android和iOS操作系統(tǒng)的移動平臺App,通過手機、平板安裝此App可以隨時隨地獲取地理信息服務(wù)。

1 系統(tǒng)總體設(shè)計

1.1 系統(tǒng)開發(fā)原則

智慧城市跨平臺移動終端在建設(shè)過程中遵循以下原則。

(1)實用性

系統(tǒng)充分考慮移動平臺使用者面向弱GIS用戶以及強GIS用戶,滿足弱GIS用戶使用簡單GIS功能,也滿足強GIS用戶在數(shù)據(jù)采集方面的需求。

(2)跨平臺性

為了節(jié)約設(shè)備的購置成本和維護成本,系統(tǒng)開發(fā)完后可適用于當(dāng)下主流的移動操作系統(tǒng)上,因為系統(tǒng)建設(shè)時需要考慮多種智能手機平臺的兼容性問題,使得該系統(tǒng)能夠運行在多種移動設(shè)備上。

1.2 系統(tǒng)開發(fā)框架

系統(tǒng)采用移動可客戶端/服務(wù)器端的傳統(tǒng)架構(gòu)方式,采用Xamarin跨平臺框架作為移動應(yīng)用開發(fā)基礎(chǔ),借助Visual Studio 富客戶端框架完成系統(tǒng)的界面設(shè)計。整個移動平臺應(yīng)用使用MMVC模式進行構(gòu)建,分離了視圖、數(shù)據(jù)、邏輯,系統(tǒng)各個功能模塊相對獨立,可以大大減少系統(tǒng)耦合性的發(fā)生,也更容易維護、升級。服務(wù)器端包括了Web應(yīng)用服務(wù)器、數(shù)據(jù)服務(wù)器、GIS服務(wù)器。其中Web服務(wù)器采用的是智慧城市應(yīng)用的公共服務(wù)平臺,使用Java框架構(gòu)建一套具有Rest風(fēng)格的Web服務(wù),移動端發(fā)送HTTP請求與Web服務(wù)器進行獲取和提交相關(guān)數(shù)據(jù)。數(shù)據(jù)服務(wù)器搭載有Oracle數(shù)據(jù)庫,用于存儲移動平臺用戶信息、權(quán)限信息、軌跡信息等等。GIS服務(wù)器提供利用ArcGIS Server發(fā)布的地圖服務(wù),移動端通過ArcGIS Runtime開發(fā)包調(diào)用地圖服務(wù)、完成地圖基本操作、地圖渲染等(圖1)。

圖1 系統(tǒng)框架

1.3 系統(tǒng)開發(fā)環(huán)境

基于Xamarin的移動平臺開發(fā)使用新式集成開發(fā)環(huán)境(IDE)。Xamarin在macOS上使用 Visual Studio for Mac,在Windows上使用Visual Studio,采用C#作為開發(fā)語言,本地數(shù)據(jù)庫使用SQLite小型關(guān)系型數(shù)據(jù)庫。

服務(wù)器端主要是針對數(shù)據(jù)庫的操作功能以及所需Rest服務(wù)搭建。系統(tǒng)基于開發(fā)環(huán)境MyEclipse,使用Java作為服務(wù)器端的開發(fā)語言并且基于Restlet框架搭建Rest服務(wù),發(fā)布Rest服務(wù)則采用Tomcat軟件,數(shù)據(jù)庫使用Oracle軟件。

2 基于Xamarin的智慧城市移動平臺跨平臺的應(yīng)用關(guān)鍵技術(shù)研究

Xamarin是一個基于Mono用于移動開發(fā)的跨平臺解決方案,可以同時支持iOS和Android的應(yīng)用開發(fā),開發(fā)人員只需熟練使用C#語言就可以同時開發(fā)Android和iOS的程序,通過Xamarin可以創(chuàng)建原生界面和調(diào)用硬件功能?;赬amarin的跨平臺可以通過少量修改代碼或不修改代碼的方式將程序移植到操作系統(tǒng)是Android或者iOS的移動設(shè)備上,跨平臺編程框架會處理各個平臺接口的差異性,開發(fā)人員只需要調(diào)用統(tǒng)一的接口就可以開發(fā)跨多個平臺程序,節(jié)省了程序員開發(fā)和維護的時間及成本。

Xamarin結(jié)合了移動設(shè)備系統(tǒng)的所有功能,并自身增加了大量的功能,其中包括:基礎(chǔ)SDK完全綁定,涵蓋了iOS和Android中所有的基礎(chǔ)平臺的SDK;Objective.C、C、Java和C++互操作。Xamarin提供直接調(diào)用Objective.C、Java、C和C++庫的接口,便于用戶使用已創(chuàng)建的各種第三方代碼;對移動跨平臺支持:Xamarin對iOS、Android和Windows這3個主流移動平臺提供復(fù)雜的跨平臺支持,其中可編寫應(yīng)用程序可共享多達90%的代碼,并且Xamarin.Mobile資源庫提供了Unified API來這3個平臺以訪問公共資源,明顯減少移動開發(fā)人員針對這3種主流移動平臺的開發(fā)成本。

2.1 空間定位技術(shù)

空間定位是移動應(yīng)用中重要的功能,是區(qū)別于桌面GIS、WebGIS的重要標志。本文基于Xamarin框架開發(fā)的定位功能調(diào)用ArcGIS Runtime中Location Display API,該API綜合了GPS定位、蜂窩網(wǎng)絡(luò)定基站定位、WIFI定位3種定位數(shù)據(jù)源,將地理定位功能封裝在底層,提供調(diào)用接口,除了提供包含經(jīng)緯度外還加入了一些例如海拔、方位、定位精度等數(shù)據(jù)。開發(fā)者使用該API時不需要知道底層如何確定定位信息及其如何實現(xiàn)的具體技術(shù),即可獲取當(dāng)前用戶的位置信息。

2.2 MMVC模式

MVVM是Model.View.ViewModel的簡寫,它根本上就是MVC的升級版。MVVM就是將View的狀態(tài)和行為進行抽象化,讓開發(fā)者把視圖UI和業(yè)務(wù)邏輯分開[5]。View Model可以獲取Model數(shù)據(jù),同時協(xié)助處理View中為了展示內(nèi)容而涉及到的業(yè)務(wù)邏輯。MVVM框架的由來便是MVP模式與WPF相結(jié)合的應(yīng)用方式發(fā)展并演變過來的一種新型架構(gòu)框架。它基于原有MVP框架并且把WPF的新特性添加進去。移動應(yīng)用采用這種模式,將數(shù)據(jù)、模型、邏輯區(qū)分開,最大程度優(yōu)化移動應(yīng)用對內(nèi)存的使用。

2.3 移動端和服務(wù)器端數(shù)據(jù)交換技術(shù)

Web服務(wù)時基于服務(wù)組件的軟件平臺,通過標準地址Internet協(xié)議向外暴漏能夠提供服務(wù)的接口,并定義了應(yīng)用程序如何在Web服務(wù)上實現(xiàn)互操作性[6]。由于平臺的無關(guān)性和可擴展性,目前移動端和服務(wù)器端的數(shù)據(jù)交互采用基于Rest風(fēng)格的Web服務(wù)技術(shù)來完成。移動平臺通過HTTP發(fā)送(GET、POST)請求對資源進行獲取、創(chuàng)建、修改和刪除等操作。服務(wù)器端和移動端之間數(shù)據(jù)交互采用JSON格式,JSON格式可以是一種輕量級的數(shù)據(jù)交互方式[7],易于閱讀和編寫,效率較高。Xamarin采用C#開發(fā)語言,對JSON格式數(shù)據(jù)序列化提供豐富的類庫,便于開發(fā)者使用。

3 系統(tǒng)功能與實現(xiàn)

智慧城市跨平臺移動終端系統(tǒng)主要功能:用戶登陸、地圖服務(wù)、數(shù)據(jù)采集、移動定位、POI搜索等。

3.1 用戶登陸

本系統(tǒng)提供用戶登陸功能:通過登陸界面,使用者輸入用戶名和密碼,被發(fā)送到服務(wù)器端進行驗證,密碼以MD5加密方式傳輸,當(dāng)認證成功后才允許用戶進入系統(tǒng)的主界面。用戶信息保存功能:用戶登錄時可以實現(xiàn)是否存儲密碼在本機,如果存儲則可以將用戶信息存儲在本地小型數(shù)據(jù)庫SQLite中;存儲信息后,也在用戶界面刪除用戶信息。用戶注冊功能:用戶填寫相應(yīng)注冊信息后,數(shù)據(jù)發(fā)送給服務(wù)器后,經(jīng)過管理員審批后方通過申請,通過申請后,用戶即可在登陸界面進行正常登陸(圖2)。

系統(tǒng)采用了Rest服務(wù)的方式對服務(wù)器端數(shù)據(jù)庫進行訪問,本系統(tǒng)服務(wù)器端在用戶登陸成功時發(fā)送一個授權(quán)密鑰Token給客服端,客戶端需要將該密鑰包含在每一個向Rest服務(wù)發(fā)起的HTTP請求中來申請使用Rest服務(wù)。系統(tǒng)設(shè)計通過密鑰封裝在HTTP請求里,每次調(diào)用Rest服務(wù)請求的過程中在服務(wù)器端進行驗證,只有通過驗證才允許對資源進行操作,通過驗證后服務(wù)器會給用戶發(fā)送包含密鑰JSON格式的數(shù)據(jù)。

圖2 用戶模塊

3.2 地圖服務(wù)

地圖服務(wù)是GIS中重要內(nèi)容,本系統(tǒng)基于Xamarin框架,采用ArcGIS Runtime開發(fā)包,不僅可以調(diào)用智慧城市地理信息公共服務(wù)平臺發(fā)布的地圖服務(wù),也可以調(diào)用本地離線地圖。地圖服務(wù)類型兼容了智慧城市大綱下主要地圖類型,包括在線國家天地圖服務(wù)、離線緊湊格式數(shù)據(jù)(緩存、Tpk)、Shp、網(wǎng)絡(luò)ArcGIS Server格式數(shù)據(jù)等。所有地圖服務(wù)都是基于CGS2000坐標系,與國家天地圖服務(wù)無縫對接。如圖是底圖切換功能,可以在多年份影像和地形間進行底圖的切換,底圖加載內(nèi)容通過可編輯XML文件進行控制,充分利用C#語言對XML文件序列化讀取功能(圖3)。在專題圖層中,可以實現(xiàn)控制圖層開關(guān)、圖層透明度調(diào)整,同時可以通過XML文件配置地圖服務(wù)加載,無論離線數(shù)據(jù)或者在線數(shù)據(jù)都可以自由加載(圖4)。

圖3 底圖切換

圖4 專題圖加載

3.3 數(shù)據(jù)采集

本系統(tǒng)基于ArcGIS Runtime開發(fā)包,實現(xiàn)了數(shù)據(jù)采集功能,不僅是屬性采集,也提供照片、視頻、錄音的采集功能,充分利用移動平臺自身硬件功能。在圖面進行標繪,將標繪數(shù)據(jù)圖形空間屬性以JSON格式存儲本地數(shù)據(jù)庫(SQLite小型關(guān)系型數(shù)據(jù)庫),標繪數(shù)據(jù)字段也是通過XML文件進行讀取,數(shù)據(jù)標繪屬性實現(xiàn)可自定義化(圖5-圖6)。標繪的每個要素都可以擁有唯一碼標識,改要素采集相關(guān)屬性、照片、視頻、錄音都存在本機唯一標識碼的文件夾里,方便數(shù)據(jù)采集后的批處理(圖7)。

圖5 圖形標繪

圖6 標繪數(shù)據(jù)入庫

圖7 數(shù)據(jù)編輯

3.4 移動定位功能

移動端定位功能是移動應(yīng)用最為便捷的功能,利用本機GPS和蜂窩網(wǎng)絡(luò)可以提高定位的精度。ArcGIS Runtime提供的定位方法是將定位技術(shù)在底層實現(xiàn)封裝后,給移動設(shè)備Location Display的接口。移動設(shè)備通過該接口可以直接獲取到地理位置信息,并通過坐標轉(zhuǎn)換顯示在當(dāng)面圖面,大大簡化了開發(fā)流程(圖8)。

圖8 實時定位

3.5 POI搜索功能

POI搜索也是智慧城市大綱對移動平臺主要要求,當(dāng)前用戶需要搜索餐廳、學(xué)校、政府機構(gòu)、加油站等設(shè)施時,往往都需要POI檢索功能。本系統(tǒng)中調(diào)用符合國家天地圖興趣點分類規(guī)范的POI服務(wù),由GIS服務(wù)器部署發(fā)布POI服務(wù)。移動平臺通過HTTP請求,獲取到查詢結(jié)果(圖9)。

圖9 POI搜索

4 結(jié) 語

本文探索并實踐了基于Xamarin框架開發(fā)的跨平臺移動終端,是在智慧城市大綱要求下移動平臺的重要實踐,并提出了跨平臺框架開發(fā)移動平臺的優(yōu)勢。本文也提出了基于Xamarin的跨平臺技術(shù)以及系統(tǒng)開發(fā)的諸多關(guān)鍵技術(shù),最后以應(yīng)用于智慧城市建設(shè)中移動終端實例闡述了技術(shù)的應(yīng)用和主要功能。

本研究主要成果如下:

(1)基于移動端MVVC開發(fā)模式設(shè)計實現(xiàn)了基于Xamarin框架的跨平臺智慧城市移動終端,運行于市面主流移動設(shè)備上。

(2)構(gòu)建了一套具有Rest風(fēng)格的Web服務(wù),實現(xiàn)移動平臺和服務(wù)端通過JSON格式進行數(shù)據(jù)交互,按照智慧城市大綱要求依托云平臺實現(xiàn)了用戶登陸相關(guān)功能。

(3)靈活加載在線地圖數(shù)據(jù)和離線地圖數(shù)據(jù),通過多源數(shù)據(jù)的加載豐富了移動平臺數(shù)據(jù)的多樣性。

基于Xamarin的移動平臺開發(fā)還有很多需要進一步研究的地方,優(yōu)化代碼來優(yōu)化移動設(shè)備內(nèi)存使用,離線地圖下載功能也需要更多探索與實踐。

猜你喜歡
跨平臺服務(wù)器端用戶
跨平臺APEX接口組件的設(shè)計與實現(xiàn)
淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
成功(2018年10期)2018-03-26 02:56:14
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
在Windows中安裝OpenVPN
基于QT的跨平臺輸電鐵塔監(jiān)控終端軟件設(shè)計與實現(xiàn)
基于OPC跨平臺通信的電機監(jiān)測與診斷系統(tǒng)
基于B/S的跨平臺用戶界面可配置算法研究
如何獲取一億海外用戶
长沙县| 宁安市| 巴马| 桃源县| 余姚市| 黎川县| 阜新| 清丰县| 湟中县| 旌德县| 泸定县| 泽州县| 商城县| 香格里拉县| 高密市| 精河县| 塔河县| 孟州市| 靖安县| 化德县| 崇文区| 洛扎县| 永川市| 祁门县| 兰坪| 尚义县| 庆城县| 龙门县| 图片| 北海市| 镶黄旗| 罗定市| 奈曼旗| 巧家县| 常熟市| 大英县| 龙江县| 阳谷县| 孝昌县| 嵊州市| 靖宇县|