基于Windows Phone的地理野外实习系统

2013-06-26 13:16曹文德董东林原菲菲茹伟娜孙文洁
地理空间信息 2013年1期
关键词:应用程序定位系统

曹文德,董东林,原菲菲,茹伟娜,孙文洁,李 傲

(1.中国矿业大学(北京)地球科学与测绘工程学院 ,北京 100083)

地理学是一门与自然和社会密切相关的科学[1]。通过野外实习,可以加深对地理学基本原理和实际问题的理解和认识,培养地理学的空间观念和综合分析能力,掌握发现问题和解决问题的方法。野外地理实习涉及的内容非常广泛,包括地质、地貌、水文、电子地图、定位越野等,这也使得实习过程更加复杂[2-5]。本文利用Windows Phone智能机操作系统,设计出野外实习系统,使得每个实习小组可以利用系统中的模块,查看实习路线和每个实习点的一系列相关资料以及复杂地理现象的演示模拟,加深对实习的理解,提升实习效果和学生的参与性,培养学生的创造性思维,丰富教学内容,弥补野外学习条件不足。

1 系统开发的理论基础

1.1 Windows Phone系统

Windows Phone是一个全新的平台,为用户带来Metro式体验,同时微软把Office办公软件、Zune媒体播放器、Xbox游戏机、Bing搜索和地图、Skydrive和图片云服务全部整合到Windows Phone中,因而受到业界的广泛关注[5]。它延续使用C#语言来开发应用,采用Silverlight和XNA 2个开发框架。

1.2 系统开发平台及实现

本系统采用Visual Studio 2010,并安装了Windows Phone开发的SDK,采用面向对象的语言C#。在构建地图程序之前首先要做的就是获得一个Bing Map API密钥。在ManiPage.xmal中,使用Credentials Provider属性:

“Silverlight for Windows Phone”是Windows Phone 7的应用程序开发平台。当创建一个新的Windows Phone应用程序时,新解决方案包括Silverlight MainPage.xaml页面,在设计视图中,这个页面显示为Windows Phone 7用户界面的预览效果,可以拖放控件到设计界面,实时查看Windows Phone 7屏幕的布局预览效果。当在Visual Studio 2010中开发Silverlight应用程序时,如果修改了XAML代码,修改将会反映到Windows Phone 7模拟器屏幕上。

2 系统构建

2.1 软件功能设计及界面

在Windows Phone UI设计过程中,我们一方面需要考虑屏幕的分辨率,另一方面还要考虑整体界面的风格。可以通过WPDT Beta,以所见即所得的方式来进行UI的设计,还可以把UI设计与数据分离。系统界面如图1所示。

图1 系统运行界面

通过此系统的功能模块(见图2)可以实现高效自主的野外地理实习:

1)实习中小组明确自己的位置,地图下方实时显示当前坐标,并在地图中以图钉形式显示实习点位置。

图2 系统模块总体设计图

2)在实习点可以文本的方式记录数据,或者在绘图板进行地质地貌素描(见图3)。

3)可以查看和回顾小组实习路线,查看是否有遗漏实习点。

4)实习中遇到典型难懂的地理现象,可以查看模拟视频或者典型图片。

5)通过地质地貌数据表的录入,采用数据字典技术和Windows Phone自适应键盘输入,加快数据录入。

6)实习中每到一个实习点可以查看该实习点标注,在绘图板中快速进行地质地貌素描,绘制简单的示意图,明确该实习点的教学内容。

在系统的应用程序栏(如图4所示)可以实现以下操作:定位目前所处位置、查询实习路线、动态添加和查看实习点标注、卫星图和道路、地形图切换。

图3 绘图板

图4 应用程序栏模块

2.2 数据组织

数据的获取大部分需要在实习目的地进行采集,从而使数据更具有现场性。通过文件夹的方法,把各种内容资料分批存储,有助于确定各种数据的完整性。整个数据内容可以通过几个阶段来完成。第一阶段是通过分析,确定数据的用途和适用范围,以及相应的数据获取手段,确保数据是在能够获取的范围内,从而设计出合理的总体设计方案。第二阶段是收集整理数据,根据数据的特性来对数据进行收集、整理、归纳和分类,必要时可对数据进行编码,最终完成所有数据内容的获取,具体数据组织过程如图5所示。

2.3 系统关键实现技术

2.3.1 数据库

图5 数据组织结构图

Windows Phone不支持直接操作物理文件,沿用了传统Silverlight的做法,使用Isolated Storage的虚拟目录空间,可有效防止病毒的扩散,但也使我们操作起来不方便。Windows Phone只有本地存储,自身不带数据库存储,所以要想在Windows Phone上使用数据库,只能通过第三方嵌入式数据库来实现。各种第三方软件的优缺点对比情况如表1所示。

表1 数据库优缺点对比

在Windows Phone中使用数据库注意事项:①根据应用的实际需要,从性能、稳定性和占用内存大小、许可证类型和易用性等方面来考虑具体选择数据的存储方式;②记住资源大小的限制;③切记释放资源。综上所述,本系统采用的是Sqlite for Windows Phone 7。

2.3.2 GPS 定位

Windows Phone 可以支持GPS,也可以支持A-GPS。GPS使用专用硬件通过卫星定位,不过在室内没有信号(在本系统中不再考虑这个问题),而且耗电比较严重;A-GPS使用基站或者网络来定位,相对比较灵活,但精度相比GPS较差。定位的相关技术用到的类主要是GeoCoordinateWatcher,要想使用这个类,需要引用System.Device程序集,并且使用System.Device.Location名称空间,还要确保在WMAppManifest.xml中包含以下的权限:

GeoCoordinateWatcher构造函数可以指定定位精度,有2个选项:Default和High。创建了GeoCoordinateWatcher对象以后,可以为它添加一个PositionChanged事件处理函数。通过GeoCoordinate参数,我们可以获得位置的相关信息。GPS定位并在当前地图上以图钉的形式显示所在位置代码:

watcher = new GeoCoordinateWatcher(GeoPositionA ccuracy.High);

watcher.MovementThreshold = 20;

watcher.PositionChanged += new EventHandler>(watcher_PositionChanged);

watcher.Start();

//当定位服务已准备就绪并接收数据时,它将开始引发 PositionChanged 事件

void watcher_PositionChanged(object sender,GeoPosi tionChangedEventArgse) {

Location location = new Location();//实例化一个位置类的实例

//将当前的经纬度值赋给位置对象

location.Latitude = e.Position.Location.Latitude;

location.Longitude = e.Position.Location.Longitude;

Pushpin pushpin = new Pushpin();//实例化一个图钉实例

pushpin.Content = "当前位置";

pushpin.Location = location;

this.map1.Children.Add(pushpin);

2.3.3 选择器

在开发第三方应用程序的某些时候,我们需要调用系统发送短信、E-Mail等功能。在Windows Mobile的基础上,系统提供了许多的API,有时在用户没有察觉的情况下发送短信、邮件和拨打电话[6,7]。但是在Windows Phone上悄悄地做这些事情暂时是无法实现的,这是因为Windows Phone的执行模型把应用程序限制在自己的隔离存储空间内,包括程序的执行和文件的访问,所以应用程序无法直接访问公共存储空间(如联系人列表),也不能直接调用其他的程序(如电话、短信程序等)。虽然Windows Phone没有提供直接访问这些功能的API,但是提供了间接的访问方式,即访问器和选择器。通过这2个工具可以访问系统中的一些功能,而且微软已经为用户封装好了,只需简单地调用就可以实现。调用Launchers或者Choosers的时候,征求用户的建议以便决定是否继续使用。启用Search Task的代码如下:

SearchTask St=new SearchTask();

St.SearchQuery=txt.SearchQuery.Text;

St.Show();

2.3.4 路线计算

Bing Maps提供了一组SOAP Services,通过使用这些服务能够实现地理位置计算、路径计算等额外的功能。

地理编码服务(Geocode Service),服务地址是:http://dev.virtualearth.net/webservices/v1/geocodeservice/GeocodeService.svc。地理编码服务可以通过搜索地名来匹配在地图上对应的位置(经度和纬度),或者通过实际位置的经度和纬度来确定对应在地图上的位置。

路由功能服务(Route Service),服务的地址是:http://dev.virtualearth.net/webservices/v1/routeservice/routeservice.svc。路由功能服务可以通过计算地点的坐标来显示线路的功能,如百度地图中常用的驾车线路功能等。

2.3.5 数字字典技术

采用数据字典技术,将地质地貌数据录入的描述内容做成模版[8]。当用户使用时,可以直接将模版上的信息调入,用户不修改或经过很少修改就可以快速完成地质地貌数据录入,同时可以规范用户数据的录入,避免了描述信息的混乱,有利于数据的管理。

3 结 语

地理野外实习系统可帮助学生摆脱单方面听老师讲解和跟随老师完成实习的思维定式,极大地锻炼了学生的独立自主能力。借助系统,实习者按沿途实习点的实习要求自己观察、测量、记录与总结, 培养学生识图、自主定位的能力。

[1]郭巍,薛林福.虚拟野外地质实习系统(VFGTS)——野外地质实践教学平台[J].世界地质,2010,29(3):523-525

[2]詹云军,袁艳斌,黄解军,等.地理野外综合实习教学系统的设计与应用[J].理工高教教育研究,2008,27(2):144-145

[3]赵荣,孙鹏.GPS技术在野外地质实习中的应用[J].数字技术与应用,2010(5):44-45

[4]邓峣,叶春.地理野外实习远程实时监控系统的设计与应用[J].南京师范大学学报:工程技术版,2010,10(4):88-91

[5]程久苗,朱永恒.高师地理科学专业野外实习成绩评价指标与评价方法探讨[J].安徽师范大学学报:自然科学版,2009,32(4):385-387

[6]DevDiv移动开发社区.移动开发全平台解决方案[M].北京:海洋出版社,2011

[7]Petzoi D C.Windows Phone 7程序设计[M].北京,人民邮电出版社,2012

[8]余丰华,吴冲龙,刘刚.基于移动GIS的野外地质数据采集系统的设计[J].计算机应用,2004(24):82-83

猜你喜欢
应用程序定位系统
Smartflower POP 一体式光伏系统
WJ-700无人机系统
《导航定位与授时》征稿简则
Smartrail4.0定位和控制
基于PowerPC+FPGA显示系统
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
找准定位 砥砺前行
连通与提升系统的最后一块拼图 Audiolab 傲立 M-DAC mini
青年择业要有准确定位