排孜拉江·帕尔哈提,郑江华
(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维吾尔文手机用户一种新颖的位置服务应用.由于用户的多样性,后期工作将考虑在其它操作系统的智能手机上系统功能的实现.
感谢新疆大学新疆多语种信息技术重点实验室哈利木拉提教授在论文组织上提出的建设性意见.