排孜拉江·帕爾哈提,鄭江華
(1.新疆大學 資源與環境科學學院,新疆 烏魯木齊830046;2.新疆智慧城市與環境建模普通高校重點實驗室,新疆 烏魯木齊830046)
有80%左右的信息與位置有關,位置服務(Location Based Services,LBS)已經成為地理信息產業的支柱.新疆是多民族聚居的地區,少數民族在常住人口中占比近60%,因此,少數民族語言文字軟件具有相當大的用戶市場,然而基于位置服務的軟件卻很罕見.2005年8月首個采用地理信息系統制圖軟件和其它制圖工具集成應用技術的維吾爾文地圖集《新疆維吾爾自治區地圖集》首發;在2009年出版發行了維吾爾文版《中國地圖》以及《世界地圖》[1~3],這些地圖的維吾爾文標記還是依賴于CoreDraw等平面制圖工具,缺少有效的工具型地理信息系統(Geographical Information System,GIS)軟件和維吾爾文地圖表達范式支持,這一直是維吾爾文地理信息服務推廣的瓶頸.本研究小組自2008年探索性地進行了維漢雙語烏魯木齊公交查詢系統的研制[4],并初步開展了基于MapXtreme的維吾爾文新疆縣域動態天氣信息查詢系統的研制[5],特別是實現了基于谷歌在線地圖的動態天氣維吾爾文查詢與發布[6],以此為基礎嘗試了一種可嵌入其他網站用戶定義位置的維漢雙語位置服務信息提供機制[7].依照3G通訊和移動互聯網的技術發展現狀與趨勢,GIS應用由傳統的單機向移動互聯網應用轉變,而智能手機日益成為GIS技術互聯網應用重要新平臺[8].本文提供了一種在維吾爾文Android系統下基于GIS的維漢雙語新疆縣域動態天氣服務客戶端,便于客戶使用以及產品市場化.本文的研究是已有研究成果的深化和延伸.
目前,手機上操作系統主要有Symbian、Windows Phone(Windows Mobile)、Android、iOS、Black Berry、Bada、MeeGo、Maemo、Palm、MTK.截止2013年5月,Android系統的全球市場占有率達到75%[9],這主要和Android系統的開源性密不可分,這種開源性使得其應用與開發的前景無可限量,特別是可以更好面對全球各個區域的語言差異的挑戰.研究面向Android系統智能手機用戶具有更大代表性和用戶應用范圍.2011年年中,出現了結合維吾爾文的書寫特點以及Android開放平臺結構特點的維吾爾文Android平臺[10],這對維吾爾文用戶的通信和整個新疆地區的信息化水平有重要的意義[11].在移動終端底層平臺上更好地支持了本研究涉及的地圖及其屬性標記信息的表達和查詢顯示.
實現移動終端維吾爾文輸入法加載主要有兩種方式:(1)在系統中加入完善的維吾爾文字符集的字體,前提是獲得手機root權限;(2)在應用中內嵌維吾爾文字體,此方法操作簡便,更易實現,從而更受歡迎.最初的維吾爾文Android系統自帶的字體包含維吾爾文字符集,但其顯示并不完全符合維吾爾文表達習慣、不美觀,不完善.而新疆大學多語種信息處理實驗室也曾提供了較為完善的Android系統維吾爾文輸入法[12].本研究擬采用MultiLing輸入法(MultiLing Keyboard),其作為Google Play商店上的一款功能全面的多國語言輸入法,可以將這款輸入法無限擴展為多語言輸入法.目前,已實現在此輸入法包中添加優化的維吾爾文字庫包,可以用長按與滑動的方式輕松切換各語言及輸入法.
面向互聯網(特別是移動網絡)的維吾爾文地圖應用罕有見到,其中的一個主要原因是:這類應用的地圖服務器或地圖容器不支持維吾爾文地圖標記.這是一個基于地圖的維吾爾文位置服務應用的一個重要技術瓶頸.利用EOT(OpenType Font)字庫即可解決此難題.微軟公司發布一款WEFT(Microsoft Web Embedding Font Tool)軟件,可以很方便地解決在網頁中嵌入特殊字體這一難題.能夠將網頁中字體制作成一個EOT格式的壓縮字庫,這個字庫中僅包含在網頁中使用到的文字,因此,體積非常小巧.當客戶訪問這個頁面的時候,瀏覽器會自動下載該字庫,將其中的字體在網頁上顯示出來[6].網頁自定義字體技術解決了維吾爾文的表達問題,該解決方案曾用于研究小組的WEB維吾爾文地圖標記,證明了其有效性[6],在本研究中,將用于支持智能移動終端維吾爾文地圖標記的實現.
根據已有文獻和研究小組的實際測試,目前主流的國內外地理信息系統工具軟件均不支持維吾爾文的地圖標記和圖元的維吾爾文屬性信息存儲,這也造成了維吾爾文地圖圖元空間信息和屬性信息互動查詢的障礙.本研究由于針對移動互聯網應用,同樣可以采用EOT技術,有效解決這一問題,當然根本性的解決還需要依賴工具型維吾爾文地理信息系統軟件及維吾爾文空間數據庫的支持.
本研究聚焦在移動終端,也就是WebGIS的客戶端設計應用,但離不開服務端的支持.隨著智能手機硬件的升級,其處理能力已經趕上幾年前的臺式機.從充分利用資源、減少網絡通訊的角度和增加應用商機的角度,本研究采用了C/S為主的混合架構,即主應用采用C/S架構,地圖和動態天氣服務采用B/S架構的模式.服務端采用VS2005開發平臺,集成免費的Google Map API地圖服務組件與實時的Yahoo Weather RSS天氣信息,利用微軟提供的網頁自定義字體(*.EOT)技術解決了維吾爾文在WEBGIS應用中的表達問題.服務端提供基于WebGIS的新疆縣域實時維吾爾文天氣信息查詢服務.具體業務邏輯見圖1.
系統開發環境如下:1)操作系統:Windows 7;2)開發語言:Java、XML;3)開發工具:Eclipse、ADT1.5、JDK6.0、Android SDK1.5.

圖1 系統業務邏輯簡圖

圖2 客戶端開發流程
客戶端的開發流程如圖2所示,包括了從Android開發環境的搭建、安裝開發平臺、環境變量的配置、模擬器運行應用程序,到真機測試的應用程序客戶端的設計過程.運行成功后在基于Android框架API的基礎上添加組件,以及用SDK工具調試應用程序,繼而導出APK文件進行真機測試.
Android提供的地圖庫不是一個標準的包,Google Map API為LBS開發者提供了基礎的地圖服務.作為一個可選的API,在使用該API之前必須顯示在應用程序中包含它,即需要在Android Manifest.xml中添加標簽來包含所需要的庫,如下的XML代碼段所示:
要在Map View控件中查看地圖,需要在應用程序中添加Android.Permission.Internet的權限,如下所示:
在本系統中涉及到的名為com.google.android.maps的包,其在Android中定義了一系列在Google Map上用于顯示、控制和層疊信息的功能類.可以很方便地支持智能手機進行融合了谷歌地圖技術的地圖服務應用開發[12].
該系統客戶端包括了一個Android應用程序涉及到的組件和類,它們包括Activity、Intent Receiver、Service、Content Provider.它們在該系統中的布局和功能如圖3所示:
對于Android應用程序與Map View組件的搭配使用上,系統將Map View組件存放在Android.View.View Group文件夾中,作為顯示地圖的View組件.同時,鑒于Map View需要通過后臺的線程來連接網絡或者數據文件,決定了Map View被Map Activity創建與管理,同時與Map Activity搭配使用.

圖3 Android終端地圖服務的實現
2.4.1 Android維漢雙語天氣服務客戶端用戶主界面
Android維漢雙語天氣服務客戶端用戶主界面由View和View Group對象組成,UI相對簡單,只要有一個輸入框、一個查詢按鈕以及顯示新疆縣域級以上動態天氣信息框即可.用戶界面的主配置文件是main.xml,核心代碼:
Android:layout width=”fill parent” Android:layout height=”fill parent” Android:orientation=”vertical”> android:id=”@+id/webView1” Android:layout width=”match parent” Android:layout height=”match parent”/>
2.4.2 維吾爾文地圖在手機屏幕上自適應表達
計算機屏幕與手機屏幕不同,分辨率也不一樣.所以對手機屏幕把計算機瀏覽器上的源碼進行修改并在手機客戶端開發中也加上相應的調整,其中我們用了Android Web View控件對它進行調整,實現代碼如下:
mwebView.getSettings().setBuiltInZoomControls(true);
//設置放大縮小按鈕
mwebView.getSettings().setSupportZoom(true);
//讓支持放大縮小
mwebView.getSettings().setJavaScriptEnabled(true);
//讓支持Java script
mwebView.getSettings().setPluginsEnabled(true);
//讓支持插件
mwebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);//讓自動加載Java script
mwebView.setInitialScale(100);
//初始打開顯示100%
2.4.3 加載瀏覽器端并顯示查詢內容
地圖在手機屏幕上的控件設計以及自適應表達完成之后,向服務器端發送請求,加載瀏覽器端的系統布局.同時,查詢內容顯示在手機客戶端.實現核心代碼如下:

實現手機端查詢結果顯示核心代碼:

將導出的APK文件安裝到Android系統手機上,同時安裝MultiLing維吾爾文輸入法,并運行.待Google Map和自定義的新疆縣域級地圖加載完整后,可在手機界面顯示的輸入框中輸入要查詢天氣信息的縣市名稱,進行維漢雙語查詢.最后,維漢雙語查詢結果顯示手機截圖如圖4、圖5所示.

圖4 移動端應用程序主界面

圖5 阿拉爾動態天氣查詢結果實例
經系統測試,系統運行穩定,可方便查詢新疆主要31個縣市實時天氣信息,實現了基于Android系統智能手機的維漢雙語新疆縣域天氣動態實況查詢系統.
本研究基于GIS系統設計并實現了針對主流智能手機操作系統——Android的維漢雙語新疆縣域動態天氣查詢系統,并驗證了其對維吾爾文地圖表達和基于維吾爾文地名屬性的動態天氣和圖元查詢的有效性.提供Android維吾爾文手機用戶一種新穎的位置服務應用.由于用戶的多樣性,后期工作將考慮在其它操作系統的智能手機上系統功能的實現.
感謝新疆大學新疆多語種信息技術重點實驗室哈利木拉提教授在論文組織上提出的建設性意見.