鄭曉栩
(福建省建筑科學研究院 福建福州 350025)
?
APP開發在工程測量中的應用
鄭曉栩
(福建省建筑科學研究院福建福州350025)
針對當前測量外業工作中的計數工作弊端,引入手機客戶端(APP)開發的概念,立足IOS開發平臺,解決了計數工作中多種常見的錯誤,并在對目前App總結分類的基礎上,探討了監測行業中哪些功能適合App化以及所要考慮的因素。
手機應用;工程測量;發展方向探討
在測量的外業工作中,通常需要面臨大量的數據記錄,沉降觀測尤其如此,一個測回內的轉點以及觀測點的個數之多,足以放大出現失誤的可能性。而在實際的沉降觀測過程中,出現錯誤的概率確實不小。常見的錯誤主要有:觀測點號記錄錯誤,導致前后兩次數據無法比較;同一觀測點的兩次讀數相差較大,但在觀測的當下并未發現,而將錯誤帶回內業計算,增大了閉合差;記錄的字跡潦草,導致內業計算時候分辨不清;對記錄數據進行錄入時,因錄入過程冗長,易出現錄入錯誤;或對記錄數據沒有及時錄入,直至數據遺失無法挽回。以上問題的解決途徑,可以歸結為3個方面:(1)提高現場記錄的準確性;(2)提高內業錄入的效率;(3)完善記錄數據的保存。而將此過程電子化,有助于解決以上問題。
但考慮到筆記本電腦體積大、重量重的特點,難以在測量過程中隨身攜帶,因此需要尋找一種更為便攜的設備來實現。而如今,手機逐漸普及,功能也不再只局限在單一的通話上,滿足不同功能的App應用層出不窮,使手機在一定程度上以一種更為便捷的方式完成了以往電腦才能完成的工作,從而拓展了手機的可能性。
目前,主流的手機應用(App)開發平臺主要有2種:IOS和Android,本文以IOS開發平臺為例,將其與沉降觀測的計數工作相結合,在實現計數這一基本功能的同時,考慮了上述提及的問題并提出解決的實現方案。
現通過一份觀測記錄來闡述:首先是計數這一基本功能的實現,通過添加3個文本框控件,分別用于“點號”、“一次讀數”、“二次讀數”的輸入,以及一個開關控件,用于前后視的輸入,并通過兩個按鈕將輸入的數據信息進行保存或刪除[1]。保存在本地的數據,采用數組結構,寫入的順序為時間順序,從而無需另外進行數據的排序,直接將數據按時間順序顯示,便于查詢。采用的變量類型包括數組、字典、字符串、數值[2]。數組的輸入具有先后的順序性(按0,1,2……),適合于按時間輸入的數據,比如每一組(次)的記錄;字典的輸入具有無序性,但元素一一對應,適合于特定性的數據,比如記錄的點號、讀數等。數據結構見圖1。
具體到本份觀測記錄,則首先需要從App入口進入,通過右上角“+”按鈕添加新工程,工程自動按日期排序(數組的特性),如圖2所示。進入新工程,便可再通過右上角的“+”按鈕添加觀測點,如圖3所示。

圖1 數據結構圖

圖2 新建工程 圖3 新建觀測點
在提高記錄的準確性上,主要通過數據校驗來實現。當對第一個數據輸入完畢后,根據2次讀數的要求,會在一個標簽控件上顯示下一個即將讀到的讀數的“準確值”來作為下一個實際讀數的提示,而在輸入第二個讀數后,此標簽控件又將顯示這兩次實際讀數的差值,從而對兩次讀數的準確性做出校驗,省去了記錄人員心算的步驟,基此,甚至可以將記錄工作直接交由測量人員一并完成,節約人力。這種校驗是通過對文本框內內容的輸入狀態(正在輸入或輸入完畢)做判斷并調用相應的方法,需要使用文本框的代理方法來實現[3]。同時,對記錄的各觀測點增加排序功能,使記錄的順序更加靈活。
承上,在進入新建的觀測點后,可在相應空欄處輸入內容,當輸入第一個數值時,如“103201”并將光標移到下一讀數的輸入時,就會在左側顯示按照尺常數校驗后(數據校驗的銦鋼尺尺常數為301550)應該讀出的理論準確讀數“404751”,并自動在讀數2的輸入框內預先填充其前5位讀數“40475”并等待用戶輸入最后一位,如圖4所示。待用戶輸入讀數2(如“404755”)后,點擊鍵盤的完成按鈕或移開光標,左側則顯示出這兩次讀數按尺常數的實際差值“4”,如圖5所示。最后點擊“Save”按鈕保存本觀測點,“Cancel”按鈕則使用戶退出本觀測點的輸入并在用戶有輸入操作時提示是否保存,無操作則直接退回上一頁面,但觀測點仍保存在工程中,“Delete”按鈕則直接刪除本觀測點并退回上一頁面。此外,當用戶輸入的讀數過大或過小,如在讀數1輸入“11”并進入讀數2的輸入時,會跳出提示框提醒用戶輸入的數據有誤,如圖6所示。

圖4 讀數預讀填充 圖5 兩次讀數校驗
返回工程界面后,“Edit”按鈕可用于工程內觀測點的排序和刪除操作,如圖7所示。“Save”按鈕用于保存本工程并重命名本工程,如圖8所示。

圖6 讀數輸入校驗 圖7 “Edit”按鈕

圖8 “Save”按鈕 圖9 “SandMail…”按鈕
在提高內業錄入效率方面,主要涉及數據的傳輸,這里提出的方法是,將保存在本地的記錄數據生成一份文本文檔,并藉由郵件發送至郵箱,之后計算人員就可以通過電腦將此文本文檔下載下來,用于數據的導入;而數據的導入,可以再由電腦端的軟件來實現,從而使記錄數據準確快速的導入。數據導入可以通過excel的VBA、VB或其他方法來實現。同時,將每次下載的文本文檔進行歸檔整理儲存,方便今后的查找和復用,從而解決了記錄數據的保存問題。
具體來說,就是當完成本工程的觀測任務后,可以通過“SendMail…”按鈕將本工程打包成文本格式發送至郵箱,如圖9所示。之后在電腦端下載并導入Excel中。導入方法在本App的應用商店以及簡介中都已提供,這里不做詳述。
通過上述案例提供的方法,有效解決了計數工作中記錄、錄入、歸檔方面常遇的問題,滿足了準確性和提高效率的要求,有助于測量人員省時省力無誤地完成工作。
但是,為什么要選擇App化的解決方法呢?這就需要先弄明白App化的本質是什么?從本案例出發,即計數工作中對誤操作的問題的解決,其實質則是把“數據”的“使用功能”實現出來,因為錯誤的數據是不具有使用價值的。再進一步抽象的話,可以把“數據”看作是一樣“產品”,那么就是要把這個“產品”的“使用功能”實現出來。我們可以把數據的記錄、錄入、計算分析類比做產品的生產、運輸、銷售,計算分析就是數據的使用功能,產品也只有到達消費者才能實現其使用功能。那么,App在其中是一個什么角色呢?如果說火車飛機等交通工具是對過去馬車信鴿等運輸方式的一次升級,那么,App則是對這些交通工具的再一次升級,只是他的對象不是實體產品,而是“數據”,或者說是“對使用需求的描述”,而且即使是實體產品不也一樣可以抽象為這樣一種“描述”嗎?運輸的對象不再是實際“已完成的東西”,而只是一種對“這個東西的描述”,在以最快的方式到達對方后,再去實現其“功能”并形成產品。可見,App化的本質,可以理解成一種更為完善和快速的交通工具,解決的是傳輸環節的問題。
當然,電腦的功能和App類似,但電腦由于其更為精細的操作,更適合那些有詳細而復雜的需求或者由多種需求組合而成的“使用功能”,而App則更適合那些點對點的直接需求,是一些簡化而直接的“功能描述”。
由此而產生的問題就是,我們監測工作中哪些需求,或者說哪些“功能描述”是適合使用App這一交通工具的呢?
就測量工作而言,外業需要面對大量數據收集,內業則要面對大量的數據計算整理。顯然,內業工作交由電腦完成更為合適,其余的工作內容,有哪些可以交由手機應用來完成,是需要探討的;而就手機應用而言,由于其不同于電腦軟件,不能進行復雜而精細的操作,而且畫面也有局限性,因此對于那些只需在一塊小小的視野內,進行一些非此即彼的、又不打算開電腦的操作,最為合適。其他的情形,不是說通過手機應用不能實現,只是鑒于操作的復雜性和實現的性價比等的考慮而顯得不合適。用戶的每一步操作,都可以理解為一次輸入(每一種輸入,都可理解為對某一種功能的描述),目的是為了得到軟件或應用的反饋,即輸出(每一種輸出,都可以理解為對這一描述的實現)。而縱觀目前手機應用的功能,若從用戶輸入的目的角度,暫可以概括為以下4種類型:
(1)保存型。主要對用戶的輸入進行存儲,位置可以是本地,也可以是云端。比如筆記類、攝影類的應用、登入的用戶名、密碼等,這類輸入的私有性較突出,和用戶的聯系最緊密。
(2)查詢型。主要對用戶的輸入進行查詢和展示,同樣可以是對本地數據庫的查詢,也可以是對網絡資源的查詢。比如字典類、瀏覽器類的應用,這類輸入所反饋的結果,而非輸入本身,與用戶的關系緊密。
(3)提醒型。主要將用戶的輸入與某個設定的條件進行關聯,并在條件滿足時生效。比如備忘類的應用,這類輸入與用戶只在條件滿足時關聯,而非時刻關聯。
(4)交流型。主要對不同用戶之間的輸入進行交換,通過網絡進行。比如交流類的應用,這類數據對輸入的用戶自身關聯不大,但對接收的用戶關聯緊密,在輸入到達對方時生效。
以上述的計數應用為例,“點號”、“前后視”、“讀數”的輸入屬于保存型的輸入,“輸入的數據是什么”是重點;數據校驗則屬于查詢型的輸入,“輸入的數據是否符合精度”的這一反饋是重點;發送至郵箱的功能則屬于交流型的輸入,“成功發送至郵箱”是重點。而從整體上看,此應用還是以記錄并發送為主,因此屬于保存-交流型。若與直接在電腦上進行輸入相比,其優點在于更便捷的操作上,而與直接在紙上筆記記錄相比,其優點在于更準確的操作。
因此,回到前面提出的,在尋找哪些功能適合由手機實現的問題上,若從這個角度入手,作者試提出以下建議:
(1)對于查詢型的輸入,可以開發一個規范的查詢應用。通過輸入關鍵詞,就可以對給定的規范進行查詢,并將查詢結果按章節位置列出,點擊再另顯示出具體細節內容。
(2)對于提醒型的輸入,可以開發一個監測項目的進度控制應用。通過添加監測工程,設定監測頻率,就可以在每天顯示當天應該前往的工程,每個工程涉及的監測項目,并通過標記來區分已完成和未完成的工程和項目,并對未完成的工程進行持續提醒。
但目前的現狀是:建筑行業的App以Android平臺的居多,主要集中在論壇類、考試類、讀圖類以及電商類等,而測量方面的App更是只有幾家創業公司在做,而且功能很不完善,對于大公司,則又不愿意去接這樣專業性要求高的項目。總的來說,雖然所需開發的功能要求較專一、但由此實現的算法(需要滿足對各個不同項目的通用性、以及與其他應用之間的對接性)卻較復雜、因此在性價比方面的劣勢也阻礙了此類App的發展,使得行業的App發展總是有種抽一鞭走一步的被動性和各自為營的獨立性。
總之,采用App化的方法前需要考慮到以下兩個問題,一個是哪些功能適合App化,另一個是否值得App化。從現狀來看,前者是前提,后者是基礎。
通過將手機應用平臺引入外業測量的計數工作中,使計數工作中常犯的記錄、錄入、歸檔方面的錯誤得到有效的解決。同時提出要在測量領域實現App化,可以從功能發掘的出發點、算法實現的性價比、同行業平臺接口的通用性和統一性等方面考慮。
[1]David Mark, Jack Nutting, Kim Topley, Fredrik Olsson, Jeff LaMarche. 周慶成,鄧強, 武海峰,等,譯. 精通iOS開發(第7版)[M]. 北京:人民郵電出版社, 2015.
[2]Stephen Kochan.林冀,范俊,朱奕欣,譯. Objective-C程序設計(第4版)[M].北京:電子工業出版社,2012.
[3]Matt Neubury.夏宏, 賈靜, 平琚赟,譯. iOS編程(第三版)[M].北京:中國電力出版社,2014.
Application of App development in Engineering Survey
ZHENGXiaoxu
(Fujian Academy of Building Research ,Fuzhou 350025)
According to the wrongs of recording task in current field survey, Mobile App(Application) Development, which was using IPhone Operation System, was introduced, and the mistakes in recording task were solved. Also, based on the summary and classification of current Apps, what kind of function in monitoring works was appropriate for App Development, and what factors need to be considered were discussed.
Mobile App; Engineering Survey; Tendency Discussing
鄭曉栩(1988.05-),男,助理工程師。
E-mail:408445251@qq.com
2016-05-11
TU198+.7
A
1004-6135(2016)07-0109-04