(成都理工大學 工程技術學院,四川 樂山 614000)
在科技高速發展的現代社會,城市的交通需求量隨著經濟的快速增長以及人口的爆炸性增長而急劇上升,交通問題越來越成為阻礙城市發展的重大問題之一。就目前而言,只有優先發展城市的公共交通,通過提高交通的資源利用率才是緩解及解決交通擁堵的重要手段。所以充分使用公共交通減少私家車的出行是目前非常值得研究的一個問題。
因此,在城市化發展中遇到重大制約時,共享單車的出現將會大大地解決交通擁堵的問題,也是社會發展的必然產物和趨勢[1]。移動終端在無線通訊技術和硬件發展的基礎上不斷的向前發展,由早期的掌上電腦已經發展為現在的智能手機和平板電腦。在這個過程中,移動設備的運算和傳輸功能大大地提高,隨著功能的逐漸豐富,在人們生活中也越來越普遍。地理信息系統(GIS)集很多科學于一體的新興邊緣科學[2]。它可以對整個地球表層的數據進行采集、存儲、分析以及通過描述來顯示出來[3]。因此,借助移動設備會是共享單車較好的選擇。在移動平臺上[4],使用地理信息系統能將智能化發揮的更好。
基于此,本文利用GIS與智能設備[5-6],幫助用戶快速方便的查找共享單車的取車與停放站點,加快改善人民群眾的出行方式,貼近綠色生活,更能較好的解決目前共享單車亂停放的混亂現象。因此,文章通過講述系統的基本需求,并且進行了詳細的設計與系統測試分析,致力解決共享單車的智能化發展,很好地滿足人民群眾的出行安排,并能夠在一定程度上保證城市交通與城市面貌的井然有序。
GIS(Geographic InformationSyste)簡而言之就是地理信息系統,它的主要功能是通過采集、儲存、管理、分析和描述與空間和地理分布相關的數據,然后服務于地理研究和地理決策[7-9]。它既能描述、分析、存儲空間信息理論和方法,又能通過分析運用地理模型為解決復雜問題提供多種地理信息[10-]11?;贕IS強大的數據處理和圖形顯示能力,它可以給用戶提供運算后的最終結果。綜上,運用GIS技術進行行駛路線的查詢是目前最為行之有效的方法。就目前的情況來看,GIS技術已經運用于資源、農林牧副漁以及國土等領域。
GIS的開發模式分為獨立開發、單純二次開發以及集成二次開發[13]。由于獨立開發和單純二次開發都受到語言和環境的限制[14]。所以GIS目前的開發主流方式還是以集成二次開發方式為主。并且集成二次開發很好地解決了傳統二次開發不能脫離GIS軟件環境單獨運行的問題?;诖?,本文將使用ArcGIS for Android開發。
ArcGIS for Android很好地解決了Google不能訪問自己定制的地圖資源和應用問題[15]。它不僅可以顯示導航地圖以及查找地址和位置,而且可以從Arcgis線中搜索有效的 地圖資源,最主要的是它可以在手持設備中使用GPS。
ArcGIS for Android對于用戶查看地圖、查看附近站點及詳細信息、顯示所選站點路徑、查看所有站點、能夠根據情況設置GPS、路徑導航,對于查看地圖,又有許多手勢操作,例如縮放操作,平移操作,詳細功能用例圖如圖1所示。

圖1 功能用例圖
服務端包括網絡服務器(IIS)、地理信息服務器、空間地理數據庫等。各個部分相輔相成,向客戶端發送服務,接受客戶端的請求進行相應的處理后,返回結果。系統的部署情況如圖2所示。

圖2 服務端部署圖
2.2.1 路徑分析
共享單車路徑分析模塊是本系統的核心模塊,該功能主要是指根據用戶的地理位置,然后給用戶提供最合適的起點與目的地信息,在地圖上快速的查找出符合條件的共享單車網點,并規劃一條最短路徑顯示給用戶,節約用戶的時間,方便用戶的出行,這里包括模塊的設計、界面的顯示,功能的介紹,以及輸入項和輸出項的說明。
(1)模塊設計。
對路徑分析模塊的具體分析設計,路徑分析需要與服務端服務進行交互,且有多個功能需要用到。所以應該盡可能簡單、完善的設計此功能。使用順序圖能很直觀的表明功能的執行過程,路徑分析順序圖如圖3所示。

圖3 路徑分析順序圖
(2)界面顯示。
界面能夠顯示查找后的路徑,顯示路徑需要在MapView中。MapView 是ArcGIS Runtime SDK for Android 的核心組件,通過MapView 可以呈現地圖服務的數據。MapView 是Android中ViewGroup的子類,也是ArcGIS Runtime SDK for Android 中的地圖容器,與很多ArcGIS API 中的Map、MapControl類作用是一樣的。直接顯示路徑是很方便的。而顯示的顏色、樣式也都在分析后設定好,引用此功能的時候就不需要在額外設定,大大減少了功能模塊之間的耦合性,增強了內聚性,比較符合程序的設計原則,具體的示例如圖4所示。

圖4 路徑顯示圖
(3)功能。
進行路徑分析,查找最短路徑,并給出詳細的行走信息。
(4)輸入項。
路徑分析提供的接口中,需要指定圖像將要在哪個容器中顯示,還需要給出起始點和目標站點的坐標。接口名稱為route_analysis。
(5)輸出項。
輸出執行查找后的結果,并將結果返回。
2.2.2 導航
(1)模塊設計。
對導航模塊的具體分析設計,導航模塊是建立在路徑分析的基礎上的。它又包含了更加具體的路徑指導和地理編碼功能,如何走,身在哪,讓人一目了然,是一個更加完善的功能。所以為了充分表達其功能性,選擇活動圖。導航活動圖如圖5所示。

圖5 導航活動圖
首先進入導航界面,然后輸入起點和終點,如果輸入錯誤的話系統會提示錯誤,如果輸入正確系統就會進行地理編碼,然后進行路徑分析和規劃,把最便捷的路線展示給用戶,以方便用戶以最快最便捷的方式和路線到達目的地,具體分析如下所示。
(2)界面顯示。
查找到路徑后,能顯示詳細的路徑信息。如圖6所示。
(3)功能。
進行路徑分析,地理編碼,并給出詳細的行走信息。
(4)輸入項。
路徑導航提供的接口中,需要輸入起始點和目標站點的名字。
(5)輸出項。
輸出執行查找后的結果,并將結果返回。顯示具體信息以及路徑。

圖6 導航輸入圖
2.2.3 顯示站點
顯示站點包括顯示所有站點和顯示附近站點。顯示附近站點需要開啟定位才可以使用。顯示所有站點把地圖中所有站點全部的顯示出來了。
(1)模塊設計。
顯示所有站點只需要查找出來然后顯示在地圖上即可。顯示周圍站點則需要再進行處理。進行查找時使用ArcGIS API for Android中的identifyTask提供的接口。IdentifyTask 顧名思義即一個識別任務類,是用來識別圖層中的要素的。當通過手指點擊地圖時獲取地圖上的要素信息,當然在識別操作前必須通過使用識別任務類identifyTask 事先設置好一組參數信息,IdentifyTask 接受的輸入參數必須是IdentifyParameters類型的對象,在參數IdentifyParameters 對象中可以設置相應的識別條件。具體的流程如圖7所示。

圖7 查找順序圖
(2)界面顯示。
查找到站點后,按照操作進行顯示,查找附近站點如圖8所示,系統會詳細的顯示附近的共享單車的數量以及最便捷的路徑。

圖8 查找附近站點圖
(3)功能。
進行要素查找,查詢屬性信息,并顯示出詳細的站點信息且能與用戶進行交互。對于彈出的提示框能夠隨用戶任意的隱藏與顯示,功能的狀態圖如圖9所示。

圖9 查找站點狀態圖
(4)輸入項。
查找站點的接口需要提供將要顯示站點的圖層,以及中心點的坐標。
(5)輸出項。
輸出執行查找后的結果,并將結果返回。顯示具體信息包括站點的名稱,自行車數量,剩余數量,距此的距離。
2.2.4 要素修改
要素修改主要針對的是修改共享單車要素的單車借出數量。這是一個非必須功能,目的只是驗證信息顯示的實時性。
(1)模塊設計。
要素編輯是ArcGIS Runtime SDK for Android 中的很重要的一塊功能,要想實現要素編輯功能,首先必須擁有一個Feature Service 服務,在此基礎上實現手持端數據編輯。在客戶端上,通過ArcGISFeatureLayer 圖層進行要素的增、刪、改以及查詢操作,還可以為每一個要素添加附件,進行要素的附件管理。發布要素服務依然需要足夠的資源才能發布成功。ArcGIS API for Android提供了applyEdits接口,使用applyEdits接口可以實現要素的添加、刪除以及要素的更新操作。
(2)功能。
能進行要素的屬性修改,要素編輯順序圖如圖10所示。

圖10 要素修改順序圖
(1)導航測試用例。
導航能夠幫助用戶查找正確的路線圖。需要準確的起始點與終點,因此對用戶的輸入要求比較高。導航測試用例表如表1所示,比如輸入正確的起點中北大學和終點傅山酒店,系統就會根據用戶的輸入情況顯示出路徑和具體的方向,否則系統就會提示操作有誤,實際結果與預期的結果相同。

表1 導航測試用例表
(2)查找所有站點測試。
點擊查找所有站點功能按鈕,會顯示站點,與數據庫中的站點相對比,一樣則為正常。所有站點測試用例表如表2所示。

表2 所有站點測試用例表
(3)查找附近站點測試。
當點擊查找附近站點功能按鈕,系統就會顯示出站點,否則系統會提示無站點,測試用例表如表3所示,從表中可以看出系統查找附近站點的預期結果與實際結果相同,滿足用戶的需求。

表3 附近站點測試用例表
(4)定位測試。
當點擊定位功能按鈕,系統的定位功能就會開啟,然后會顯示定位點,接著用戶可以根據實際情況判斷定位的準確度。定位測試用例表如表4所示,從表中可以看出系統實際測試的結果與預期的判斷結果相符,滿足用戶的需求。

表4 導航測試用例表
本文所設計的系統利用了ArcGIS for Android開發了共享單車租賃系統的一個部分以及共享單車的站點查詢。同時利用面向對象的程序設計方法進行開發移動GIS,系統具有良好的用戶界面與靈活性。并且利用所開發的系統進行了測試與分析,實際的檢測結果與預期結果相符,能夠滿足用戶的需求,并且共享單車的智能化發展也能在一定程度上保證城市交通與城市面貌的井井有條。相信對未來共享單車租賃系統的發揮會有很大的幫助。