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

?

基于Android的移動(dòng)終端測量系統(tǒng)

2020-08-31 01:38郭炳
軟件工程 2020年8期
關(guān)鍵詞:傳感器測量

郭炳

摘 ?要:針對目前Android市場大多數(shù)測量系統(tǒng)功能單一、測量過程復(fù)雜等問題,本文設(shè)計(jì)一種基于Android的移動(dòng)終端測量系統(tǒng)。該系統(tǒng)利用移動(dòng)終端自帶GPS定位、方向傳感器獲取的數(shù)據(jù),結(jié)合幾何方法,實(shí)現(xiàn)高度、面積、距離測量集于一體。測量結(jié)果表明,本系統(tǒng)操作簡單,可準(zhǔn)確測量室內(nèi)室外目標(biāo)物體特別是因周圍環(huán)境因素?zé)o法接近的物體高度,以及不規(guī)則土地面積和周長。

關(guān)鍵詞:Android;傳感器;GPS;測量

中圖分類號:TP311 ? ? 文獻(xiàn)標(biāo)識碼:A

Abstract: Aiming at the problems of single function with complicated measurement process of most measurement systems in the current Android market, this paper designs a mobile terminal measurement system based on Android. The system utilizes the geometric method and the data obtained by GPS (The Global Positioning System) positioning and direction sensor of mobile terminals to realize the integrated measurement of height, area and distance. The measurement results show that the system is simple to operate and can accurately measure the height of indoor and outdoor objects, especially those objects that cannot be approached due to environmental factors, as well as the irregular land area and perimeter.

Keywords: Android; sensor; GPS; measurement

1 ? 引言(Introduction)

隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,移動(dòng)智能終端設(shè)備市場占有率暴增。Android平臺的開源優(yōu)勢,使其成為用戶的首選?;贏ndroid系統(tǒng)開發(fā)的應(yīng)用,在移動(dòng)應(yīng)用市場占主導(dǎo)地位。智能手機(jī)不僅有高效的運(yùn)算處理能力、出色的多媒體技術(shù)、便捷的信息共享能力,還植入各種感知環(huán)境的傳感器,這使得智能手機(jī)逐漸成為人們感知周圍環(huán)境的工具[1]。GPS的出現(xiàn)為測量技術(shù)帶來了一場深刻的技術(shù)革命。利用GPS的定位功能,對于任何點(diǎn)狀、線狀、面狀地物,都可以通過GPS的定位功能獲取其地理坐標(biāo)數(shù)據(jù),通過地圖投影方法,可計(jì)算出線狀地物的長度、面狀地物的面積等[2]。

目前,基于Android智能手機(jī)的測量系統(tǒng)得到了廣泛應(yīng)用。例如,利用方向傳感器測量物體高度[3,4],利用GPS定位服務(wù)測量距離和面積[5-7]。但大多數(shù)應(yīng)用功能比較單一,操作時(shí)比較專業(yè)。測量人員在野外作業(yè),長途跋涉,需要攜帶重量較重的專業(yè)設(shè)備,而且專業(yè)設(shè)備操作復(fù)雜,一定程度上給測量人員帶來困難[8-11]。建筑人員有時(shí)測量遠(yuǎn)處建筑物的高度,由于河流或其他屏障,無法到達(dá)目標(biāo)建筑物的附近,這給測量工作造成了一定的難度。務(wù)農(nóng)人員測量土地面積時(shí),操作專業(yè)設(shè)備比較困難。

針對以上問題,本文設(shè)計(jì)了一款多功能的測量系統(tǒng),當(dāng)工作人員因外界因素?zé)o法近距離測量目標(biāo)物時(shí),本系統(tǒng)可準(zhǔn)確測量室內(nèi)室外目標(biāo)物體高度,以及測量不規(guī)則土地面積、周長。操作簡單,攜帶方便。本系統(tǒng)運(yùn)行在安裝有Android系統(tǒng)的移動(dòng)終端,例如手機(jī)、平板,是面向工程測量人員、科研工作者、建筑人員、農(nóng)村務(wù)農(nóng)人員開發(fā)的一款應(yīng)用軟件。

2 ? 系統(tǒng)設(shè)計(jì)(System design)

2.1 ? 系統(tǒng)模型設(shè)計(jì)

測量高度功能是利用移動(dòng)終端延長線與目標(biāo)物體頂端、底端之間的夾角,結(jié)合測量者身高來計(jì)算目標(biāo)物體的高度,以及目標(biāo)物體與測量者之間的距離。測量面積功能是利用移動(dòng)終端獲取GPS經(jīng)緯度坐標(biāo),計(jì)算坐標(biāo)點(diǎn)包圍區(qū)域面積和周長,最后將經(jīng)緯度坐標(biāo)轉(zhuǎn)換為屏幕坐標(biāo),將所包圍區(qū)域畫出來,顯示在終端屏幕。

測量距離功能原理與測量面積原理相同,圖1為系統(tǒng)功能結(jié)構(gòu)圖。

2.2 ? 系統(tǒng)詳細(xì)設(shè)計(jì)

2.2.1 ? ?高度測量模塊

高度測量公式是利用測量者身高、手機(jī)角度傳感器所測角度,根據(jù)三角函數(shù)推導(dǎo)得出。如圖2所示,在測量點(diǎn)1,測量者手持手機(jī),伸直手臂,手機(jī)屏幕向上,將手機(jī)平面處在眼睛和目標(biāo)物體頂點(diǎn)連線上,記錄手機(jī)傳感器上仰角。站在測量點(diǎn)1不動(dòng),再記錄下仰角。同理,測量者移動(dòng)到測量點(diǎn)2的位置,記錄上仰角和下仰角。公式(1)為高度測量公式:

高度測量模塊由MeasureHeight類實(shí)現(xiàn),該類實(shí)現(xiàn)了SensorEventListener接口。通過getSystemService()和getDefaultSensor()函數(shù)獲取傳感器。由registerListener()函數(shù)注冊傳感器監(jiān)聽,recordAngel記錄傳感器角度。在測量點(diǎn)1位置測量時(shí),由變量angle11記錄位置1的上仰角,由變量angle12記錄位置1的下仰角。移動(dòng)到位置2時(shí),由angle21記錄位置2的上仰角,由angle22記錄位置2的下仰角。通過flagRecordAngel標(biāo)記區(qū)分兩個(gè)測量位置的四個(gè)不同角度。最后由sizeMeasure()函數(shù)使用公式(1)計(jì)算目標(biāo)物體高度,用公式(2)計(jì)算測量位置2與目標(biāo)物體之間的水平距離。

2.2.2 ? 面積測量模塊

面積測量模塊由MeasureArea類實(shí)現(xiàn),getLastKnownLocation()函數(shù)獲取GPS位置信息,requestLocationUpdates()函數(shù)設(shè)置GPS位置更新間隔,本系統(tǒng)默認(rèn)為每隔1秒更新1次。savePoint()函數(shù)將坐標(biāo)點(diǎn)保存到datalist中,最后由computeArea()函數(shù)計(jì)算坐標(biāo)點(diǎn)所圍區(qū)域的面積。記錄坐標(biāo)點(diǎn)分兩種模式,一種是手動(dòng)記錄,每走一段距離點(diǎn)擊一下“手動(dòng)記錄”按鈕;另一種是自動(dòng)記錄模式,這種模式不需手動(dòng)點(diǎn)擊按鈕,只要點(diǎn)擊一下開始和結(jié)束即可,系統(tǒng)自動(dòng)記錄坐標(biāo)點(diǎn)。

計(jì)算面積后,通過paintArea()函數(shù)將測量區(qū)域畫出來,使測量者更加直觀的了解地塊的形狀。畫圖之前,locationTran()函數(shù)將經(jīng)緯度坐標(biāo)點(diǎn)轉(zhuǎn)化為屏幕坐標(biāo)點(diǎn),再根據(jù)畫圖區(qū)域?qū)捄透呱杀壤蜃?。轉(zhuǎn)化后的坐標(biāo)點(diǎn)存儲在Xyzpoint類的列表中。最后通過drawLine()、drawCircle()、drawText()這3個(gè)函數(shù)將線、點(diǎn)、序號畫出來。

2.2.3 ? 距離測量模塊

距離測量模塊由MeasurePath類實(shí)現(xiàn),getLastKnownLocation()函數(shù)獲取GPS位置信息,requestLocationUpdates()函數(shù)設(shè)置GPS位置更新間隔,本系統(tǒng)默認(rèn)為每隔1秒更新1次。savePoint()函數(shù)將坐標(biāo)點(diǎn)保存到datalist中,最后由computePrea()函數(shù)計(jì)算坐標(biāo)點(diǎn)之間的距離。記錄坐標(biāo)點(diǎn)分兩種模式,一種是手動(dòng)記錄,每走一段距離點(diǎn)擊一下“手動(dòng)記錄”按鈕;另一種是自動(dòng)記錄模式,這種模式不需手動(dòng)點(diǎn)擊按鈕,只要點(diǎn)擊一下開始和結(jié)束即可,系統(tǒng)自動(dòng)記錄坐標(biāo)點(diǎn)。

計(jì)算距離后,通過paintArea()函數(shù)將測量線路畫出來,使測量者更加直觀的了解路徑的形狀。畫圖之前,locationTran()函數(shù)將經(jīng)緯度坐標(biāo)點(diǎn)轉(zhuǎn)化為屏幕坐標(biāo)點(diǎn),再根據(jù)畫圖區(qū)域?qū)捄透呱杀壤蜃?。轉(zhuǎn)化后的坐標(biāo)點(diǎn)存儲在Xyzpoint類的列表中。最后通過drawLine()、drawCircle()、drawText()這三個(gè)函數(shù)將線、點(diǎn)、序號畫出來。

2.3 ? 系統(tǒng)特點(diǎn)

測量系統(tǒng)是面向工程測量人員、室內(nèi)外裝潢裝修人員、農(nóng)村土地測量等人員開發(fā)的一款應(yīng)用軟件,由于該軟件只需安裝在移動(dòng)終端,使用非常方便。該軟件系統(tǒng)采用Android傳感器技術(shù)、GPS定位技術(shù),實(shí)現(xiàn)目標(biāo)物體高度測量、區(qū)域面積和周長測量、距離測量。與專業(yè)測量工具相比,該系統(tǒng)具有攜帶方便,操作簡單,經(jīng)濟(jì)實(shí)惠等特點(diǎn)。與目前網(wǎng)上測量軟件相比,該系統(tǒng)具有功能多、精度高等特點(diǎn)。特別是高度測量功能,在室內(nèi)室外精度一樣高。

3 ? 系統(tǒng)環(huán)境與測試(System environment and testing)

3.1 ? 系統(tǒng)環(huán)境

本系統(tǒng)主要以Eclipse為開發(fā)環(huán)境,采用Java程序設(shè)計(jì)語言,各類裝有Android4.0及以上系統(tǒng)手機(jī)或者平板都可運(yùn)行。

3.2 ? 系統(tǒng)測試

第一步:首先啟動(dòng)APP,將進(jìn)入軟件主界面,主界面顯示四個(gè)按鈕,分別為“測量高度”“測量面積”“測量距離”“退出”按鈕。本系統(tǒng)的啟動(dòng)時(shí)間少于1秒。

第二步:選擇要執(zhí)行的功能,如選擇測量高度功能,點(diǎn)擊“測量高度”按鈕,進(jìn)入測量高度界面,測量者站在測量位置,手持裝有測量精靈軟件的智能手機(jī),手臂伸直,手機(jī)屏幕向上,微調(diào)手機(jī)傾斜角度,使手機(jī)屏幕處于眼睛與目標(biāo)物體頂端連接線上(如圖3),點(diǎn)擊屏幕底部“單機(jī)記錄角度”按鈕,界面上位置1后“角度1”欄內(nèi)顯示具體角度,該角度對應(yīng)圖2中。然后手臂向下傾斜,瞄準(zhǔn)目標(biāo)物體底端,記錄“角度2”,對應(yīng)圖2中。按照同樣操作步驟,測量者向前移動(dòng)一定距離(大約測量位置距目標(biāo)物體距離的一半左右),記錄位置2的“角度1”和“角度2”,分別對應(yīng)圖2中的和。

最后在“請輸入身高(cm)”欄內(nèi)輸入測量者的身高,點(diǎn)擊“計(jì)算”按鈕,界面上方顯示目標(biāo)物體高度和位置2與目標(biāo)物體之間的水平距離。圖4為測量普通平房效果圖,誤差為5cm左右。點(diǎn)擊“清空”按鈕,可再次進(jìn)行測量。

第三步:如選擇面積測量功能,點(diǎn)擊“測量面積”按鈕,進(jìn)入測量面積界面,有兩種測量模式,第一種是手動(dòng)記錄模式,當(dāng)右上角“測量結(jié)果”欄內(nèi)出現(xiàn)“坐標(biāo)點(diǎn)數(shù)為0”字樣時(shí),說明系統(tǒng)已獲取GPS服務(wù),點(diǎn)擊“手動(dòng)記錄”按鈕,然后繞行被測區(qū)域行走一周,邊走邊點(diǎn)擊“手動(dòng)記錄”按鈕,特別是走到拐彎的地方,記錄下坐標(biāo)點(diǎn),計(jì)算精度更高。當(dāng)行走一圈回到原點(diǎn)后,點(diǎn)擊“顯示結(jié)果”按鈕,界面“形狀顯示”區(qū)會顯示所測區(qū)域的形狀,“測量結(jié)果”區(qū)會顯示所測區(qū)域面積和周長。圖5為手動(dòng)模式下測量面積結(jié)果圖。點(diǎn)擊“清空數(shù)據(jù)”按鈕可繼續(xù)進(jìn)行測量。

第二種是自動(dòng)記錄模式,同樣,當(dāng)右上角“測量結(jié)果”欄內(nèi)出現(xiàn)“坐標(biāo)點(diǎn)數(shù)為0”字樣時(shí),點(diǎn)擊“自動(dòng)記錄”按鈕,該按鈕變?yōu)椤包c(diǎn)擊結(jié)束”,測量者開始繞被測區(qū)域行走一周,行走過程無須點(diǎn)擊任何按鈕。為了提高計(jì)算精度,當(dāng)走到拐彎的地方,應(yīng)稍作停留,大約2秒。當(dāng)回到原點(diǎn)時(shí),點(diǎn)擊“點(diǎn)擊結(jié)束”按鈕,自動(dòng)記錄模式結(jié)束,點(diǎn)擊“顯示結(jié)果”按鈕,界面“形狀顯示”區(qū)會顯示所測區(qū)域的形狀,“測量結(jié)果”區(qū)會顯示所測區(qū)域面積和周長。圖6為自動(dòng)記錄模式下測量結(jié)果圖。

第四步:如選擇距離測量功能,點(diǎn)擊“測量距離”按鈕,進(jìn)入測量距離界面,該模塊操作與面積測量模塊類似,第一種是手動(dòng)記錄模式,當(dāng)右上角“測量結(jié)果”欄內(nèi)出現(xiàn)“坐標(biāo)點(diǎn)數(shù)為0”字樣時(shí),說明系統(tǒng)已獲取GPS服務(wù),點(diǎn)擊“手動(dòng)記錄”按鈕,然后沿著被測路徑行走,邊走邊點(diǎn)擊“手動(dòng)記錄”按鈕,特別是走到拐彎的地方,記錄下坐標(biāo)點(diǎn),計(jì)算精度更高。當(dāng)行走到終點(diǎn)后,點(diǎn)擊“顯示結(jié)果”按鈕,界面“形狀顯示”區(qū)會顯示所測路徑的形狀,“測量結(jié)果”區(qū)會顯示所測路徑長度。第二種是自動(dòng)記錄模式,同樣,當(dāng)右上角“測量結(jié)果”欄內(nèi)出現(xiàn)“坐標(biāo)點(diǎn)數(shù)為0”字樣時(shí),點(diǎn)擊“自動(dòng)記錄”按鈕,該按鈕變?yōu)椤包c(diǎn)擊結(jié)束”,然后沿著被測路徑行走,行走過程無須點(diǎn)擊任何按鈕。為了提高計(jì)算精度,當(dāng)走到拐彎的地方,應(yīng)稍作停留,大約2秒。當(dāng)回到終點(diǎn)時(shí),點(diǎn)擊“點(diǎn)擊結(jié)束”按鈕,自動(dòng)記錄模式結(jié)束,點(diǎn)擊“顯示結(jié)果”按鈕,界面“形狀顯示”區(qū)會顯示所測路徑的形狀,“測量結(jié)果”區(qū)會顯示所測路徑長度。

4 ? 結(jié)論(Conclusion)

本文通過幾何理論,利用智能手機(jī)內(nèi)置方向傳感器、GPS定位,設(shè)計(jì)并實(shí)現(xiàn)了移動(dòng)終端測量系統(tǒng),可準(zhǔn)確測量物體高度、區(qū)域距離和面積。具有操作簡單,攜帶方便等特點(diǎn),可應(yīng)用在工程建筑、室內(nèi)裝修、農(nóng)業(yè)農(nóng)村、野外測量等領(lǐng)域,在實(shí)際操作中本系統(tǒng)有良好的應(yīng)用效果。

參考文獻(xiàn)(References)

[1] Liu X , Du X , Zhang X , et al. Adversarial Samples on Android Malware Detection Systems for IoT Systems[J]. Sensors, 2019, 19(4): 974-986.

[2] 張東紅,馬友華,管飛,等.基于GPS的農(nóng)機(jī)作業(yè)面積與軌跡監(jiān)測管理系統(tǒng)[J].地理空間信息,2018,16(02):68-70.

[3] 李亞東,馮仲科,曹明蘭,等.Android智能手機(jī)樹高測量APP開發(fā)與試驗(yàn)[J].中南林業(yè)科技大學(xué)學(xué)報(bào),2016,36(10):78-82.

[4] 顏婉倩,鞏宇涵,石玉立.以安卓智能手機(jī)為平臺的樹木高度測量技術(shù)[J].江蘇林業(yè)科技,2016,43(4):40-43.

[5] 趙方,張潔,趙天忠,等.基于Android平臺的GPS林地面積測量[J].計(jì)算機(jī)工程與應(yīng)用,2014,50(23):261-266.

[6] Singhal M, Shukla A. Implementation of Location based Services in Android using GPS and Web Services[J]. International Journal of Computer Science Issues, 2012, 9(1): 237-242.

[7] 張艷芳,周聰.基于Android平臺的移動(dòng)終端設(shè)備的面積測量應(yīng)用開發(fā)[J].計(jì)算機(jī)與現(xiàn)代化,2009(12):147-149;153.

[8] 張宏橋,賀玉泉,張國帥,等.一種非接觸式線段測量系統(tǒng)的實(shí)現(xiàn)[J].軟件工程,2019,22(9):31-33.

[9] 張振軍,楊松,唐磊.基于Android的河道測繪移動(dòng)終端設(shè)計(jì)與實(shí)現(xiàn)[J].北京測繪,2018,32(08):73-76.

[10] 李越.基于Android的地質(zhì)災(zāi)害野外調(diào)查信息采集系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)[D].云南大學(xué),2015.

[11] 劉曉,張照錄,袁晏明,等.基于Android的野外地質(zhì)實(shí)習(xí)輔助教學(xué)系統(tǒng)[J].中國地質(zhì)教育,2015,24(1):123-124.

作者簡介:

郭 ? 炳(1985-),男,碩士,實(shí)驗(yàn)師.研究領(lǐng)域:移動(dòng)互聯(lián)應(yīng)用,數(shù)據(jù)挖掘.

猜你喜歡
傳感器測量
康奈爾大學(xué)制造出可拉伸傳感器
簡述傳感器在物聯(lián)網(wǎng)中的應(yīng)用
“傳感器新聞”會帶來什么
跟蹤導(dǎo)練(三)2
測量