分享一下我的部分毕设内容:基于Windows Phone平台的污染源管理应用

原文:分享一下我的部分毕设内容:基于Windows
Phone平台的污染源管理应用

毕业半年,又总结了一下之前的工作,发现很多知识不复习都忘记了。最近新闻总是报道北京的空气污染,各种雾霾,各种PM
X超标,然后想到以后我们有饭吃了(俺也算是搞环境的科班出身,本科环境科学专业),然后联系到本科的毕业论文,刚好做的是大气污染相关的,于是闲来和大家分享一下,也算是对自己的之前工作的一个总结。

论文主要做的一个基于Web和Windows
Phone平台的污染预测和污染源管理的应用,大体的功能就是根据污染物的扩散模型,对大气污染的扩散,浓度分布进行模拟和可视化表达,同时对排放污染物的污染源进行在线的管理和监测。

这里分享一下我的Windows Phone部分的毕设内容,主要实现的就是污染源的管理,例如污染源信息的增删改查。废话少说,下面就进入正题:

本次的主要内容大致有以下几个部分:

1.GIS服务部分,如何搭建GIS服务环境,如发布带有关系类的要素服务,及其注意事项

2.ArcGIS API for Windows Phone中的数据绑定,如要素信息的显示。

3.ArcGIS API for Windows Phone中要素信息的管理(添加要素,删除要素,编辑要素属性,查询属性)

4.ArcGIS API for Windows Phone中如何查询要素关联的数据表(非要素本身)

首先看一下最终的效果:

主界面,及查询页面

要素信息显示:

点击跟多查询污染源详细信息和排放口信息

添加或删除要素:

以上的内容大致就是毕设做的,其中还包括了GPS定位导航等,由于是模拟器,所以无法实现定位的功能。在此就不再多言。

一、ArcGIS API For Windows Phone
的地理要素属性编辑

在这里主要实现的功能是实现移动智能终端对污染源数据的访问及查询。这里采用中国ArcGIS
Online所提供的中国地图作为本程序的底图,并在底图上加载污染源数据图层。污染源的数据图层类型应为FeatureLayer,其Url地址应指向ArcGIS
Server发布的FeatureService中的地理要素资源。下面示例代码声明了一个FeatureLayer的图层:

<esri:FeatureLayer
ID="ConverntionalSourceLayer" Url="http://qzj-pc/ArcGIS/rest/services/PollutionSourceInfo/FeatureServer/1"
AutoSave="True"
OutFields="*" MouseLeftButtonDown="FeatureLayer_MouseLeftButtonDown" />

在ArcGIS API for Windows Phone
中可以通过Editor组件完成要素的编辑工作。Editor编辑的对象要求是FeatureService中的要素资源。

如下所示声明了一个Editor:

<esri:Editor
x:Key="MyEditor"
LayerIDs="ConverntionalSourceLayer"
GeometryServiceUrl=
"http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer" EditCompleted="Editor_EditCompleted"/>

Editor组件包含以下编辑命令:






































       
   功能名称          
 
       
                   功能说明
                   
                   
                   
                   
                   
       
Add 绘制并添加一个Graphic
CancelActive 取消编辑功能中所有激活的操作
ClearSelection 取消选择所有已选择的Graphic
DeleteSelected 删除一个Graphic,如果此Graphic与可编辑的FeatureLayer关联,则该Graphic也会从地理数据库中删除
Cut 通过一个geometry
service服务剪辑某一Graphic
EditVertices 编辑Graphic的顶点,该功能针对多变要素的编辑
Reshape 通过geometry
service重新绘制某一选定的Graphic的形状
Save 保存所有的编辑操作
Union 通过geometry
service连接所有选定的Graphic
Select 选择一个Graphic

Editor中的每一个命令都包含了两个方法,一个是
CanExecute,一个是Execute方法,前一个方法用来判断该命令是否可以执行,当确认可以执行时,便开始执行相关操作。例如对于Add命令来说,其示例代码如下:

if (editor.Add.CanExecute("ConventionalSource"))
editor.Add.Execute("ConventionalSource");

这里CanExecute以及Execute函数中的参数为编辑图层中特定模版的名称或者类型的ID值。图5.15显示了要素服务图层中的Templates属性。

其他操作类似于添加操作,不一样的地方为函数的输入参数不同,因此在此不再叙述。
在建立好编辑的图层以及声明了编辑的工具之后,下一步便是通过编辑工具对图层的信息进行查看和编辑。下图显示了移动终端访问地理数据库中相关要素的过程。
这里实现访问和编辑的核心是GIS服务,所有的操作都是通过GIS服务来完成的,其中GIS服务包含了常用的FeatureService,GeometryService,MapService等。
下图说明了移动终端访问的过程,以及Windows
Phone手机上的操作界面。

在设置好Edior工具之后,本文还定义了一个ListBox的控件,用来将污染源的属性绑定到ListBox的内容,这样当修改ListBox的内容时,同时也会更改污染源的属性,并将更改更新到后台的数据库中,从而达到对污染源属性进行编辑的效果。此外结合之前的Add方法以及删除方法,通过添加或删除一个污染源,那么就可以很好的完成关于污染源数据编辑以及数据提交的功能。最后的效果图如下所示:

、ArcGIS API For Windows Phone
的地理要素属性查询

在本文中提供了两种查询方式,一种是按属性查询,一种是空间查询。两种查询的基本原理是一致。其查询的过程和原理与ArcGIS API for
Silverlight一致。都是通过QueryTask来实现查询的功能。
对于属性查询来说,是给定了查询的属性条件,例如我们只查询污染物排放量大于100kg的污染源,那么只需通过设置Query的where属性即可。

query.Where="PS_PollutionQ >100";
queryTask.ExecuteAsync(query);

对于空间查询实际上是通过设置Query的Geometry属性。首先通过一个Draw事件捕捉用户绘制的图形,然后将此图形赋值给Query的Geometry,最后执行查询,代码如下所示:

SpatialQuery.Geometry = e.Geometry;
queryTask.ExecuteAsync(SpatialQuery);

下图显示了按属性条件查询和按空间查询的效果图:

三、ArcGIS API For Windows Phone
的地理要素关联属性表查询

在关联属性表查询中和Silverlight同样是类似的,都是通过指定RelationshipParameter,来进行查询,例如下面声明的一个RelationshipParameter


 RelationshipParameter relationshipParameters = new RelationshipParameter()
{
//通过Source_ID字段来查询关联的数据
//需要注意的是用于查询的字段必须为Integer类型的(String类型的将查询不到结果)
ObjectIds = new int[] { Convert.ToInt32(_SelectedGraphic.Attributes["Source_ID"])},
RelationshipId = _relationshipId,
OutFields = outFildes,
OutSpatialReference = BaseMap.SpatialReference,
ReturnGeometry=true
};
//UserToken指定为关联的ID值,这样可用来判断查询的结果是那一张表
queryTask.ExecuteRelationshipQueryAsync(relationshipParameters,_relationshipId);

最后即可查询关联的数据信息,最后的示意图:

PS:代码上传了好久没有成功,蛋疼的校园网啊,有需要代码的可以留言....我会将代码和测试数据发送到您的邮箱,关于GIS服务的发布,可以参见之前的系列博文,欢迎关注我的博客.....您的支持是我坚持不懈的动力。

 

分享一下我的部分毕设内容:基于Windows Phone平台的污染源管理应用,布布扣,bubuko.com

时间: 2024-10-14 10:48:54

分享一下我的部分毕设内容:基于Windows Phone平台的污染源管理应用的相关文章

基于Windows Server 2012 R2下的DHCP安装

这次的博客分享中旨在希望能帮助工程师完成基于Windows Server 2012 R2版本的DHCP安装. 分别在DHCP01及DHCP02服务器中执行如下操作,添加安装DHCP服务. 1) 打开"服务器管理器"窗口,单击"管理"/"添加角色和功能",如(图1)所示: 2) 在"添加角色和功能向导"(图2)页面中,单击"下一步"按钮: 3) 在"选择目标服务器"页面中,单击"

基于Windows Sdk 与visual C++2008 在微软平台上构架自己的语音识别引擎(适用于windows 2

基于Windows Sdk 与visual C++2008 在微软平台上构架自己的语音识别引擎(适用于windows 2000/xp2003/vista   windows CE /mobile),本项目开源,源码请留下你们的Email,我给大家发 本人闲来无事,自行开发了一个小型的语音识别引擎,搭建起在微软平台上的语音识别框架服务体系, 鉴于本人个人力量有限,为了将语音识别引擎做的功能更加强悍,强大, 现在将该系统开源,需要源码的请在本人CSDN博客下留下EMail, 本系统属于系统框架,搭建

基于Spark MLlib平台的协同过滤算法---电影推荐系统

基于Spark MLlib平台的协同过滤算法---电影推荐系统 又好一阵子没有写文章了,阿弥陀佛...最近项目中要做理财推荐,所以,回过头来回顾一下协同过滤算法在推荐系统中的应用. 说到推荐系统,大家可能立马会想到协同过滤算法.本文基于Spark MLlib平台实现一个向用户推荐电影的简单应用.其中,主要包括三部分内容: 协同过滤算法概述 基于模型的协同过滤应用---电影推荐 实时推荐架构分析     一.协同过滤算法概述 本人对算法的研究,目前还不是很深入,这里简单的介绍下其工作原理. 通常,

在SAE搭建Python+Django+MySQL(基于Windows)

为了与时俱进,工作闲余开始研究Python,刚一接触就被Python这"优雅"的语法吸引住!后来接触到了Django,虽然还没有太深入的研究,但对这种新概念的WEB开发很感兴趣,决定尝试用它代替Java开发小的后台程序,边用边学吧! 注:本篇只介绍基础搭建过程,不负责讲解,因为刚接触Python我也不懂! 一.SAE使用的Python环境版本 Python2.7 Django1.27 / 1.4 / 1.5 本地版本要确定好,需要用到其他的预装模块也要确定好. (我一开始使用了高版本的

基于Windows Server 2012 r2环境部署 SharePoint 2013 SP1

在安装SharePoint 2013 服务器之前,请先了解硬件和软件要求 http://technet.microsoft.com/library/cc262485(office.15)?ocid=fwlink#section4 Microsoft SharePoint 产品准备工具会为具有内置数据库的单台服务器安装以下必备软件: Web 服务器 (IIS) 角色 应用程序服务器角色 Microsoft .NET Framework 4.5 SQL Server 2008 R2 SP1 Nati

自己做的基于微信公众平台的【轻阅读】业界良心省流量。

先看图,基于微信公众平台和新浪微博开放平台的小应用.点击下右下的菜单便会返回微博内容,起源于楼主的GPRS是100M的,一是想省点流量来看看微博,有些微博的内容与配图严重不相关,浪费流量,二是这样做响应速度更快. 想试下的同学可以关注楼主的公众帐号来看看:webworking 二维码: PS: 有做微信.微博等平台开发的.各种编程问题的可以加楼主微信:JiangHuKeyke 二维码:

基于开源技术的上网行为管理方案实现案例

基于开源技术的上网行为管理方案实现案例 互联网已经成为人们工作.生活过程不可或缺的工具.在企业普遍存在着电脑和互联网络滥用的严重问题,网购.各种直播.电影.P2P工具下载等与工作无关的行为占用了有限的带宽,影响了工作,作为企业如何监管?购买商业软件?我看,未必适合你的公司. 选择开源工具怎么样?下面我为大家介绍两款开源工具及案例.用以实现用户上网内容审计和行为监控.这些技术的基础基于嗅探技术,所以大家在浏览下文时,一定要对网络嗅探技术有深刻理解. 1.开源工具Xplico Xplico工作原理是

基于windows平台的Object-C集成开发环境的搭建

这段时间开始学习IOS开发,对于一些基本环境的设置,查阅资料后搞了出来. 资料链接:http://wenku.baidu.com/view/9ffed817f18583d0496459ca.html 有三个方案可以搭建开发ios的环境: 一,买个苹果电脑,用xcode开发. 二,基于windows搭建一个object-c的开发环境. 三,安装一个苹果虚拟机,在虚拟机里面用xcode开发. 这里第一个和第三个方案就不说了,说说第二个方案. 首先,我们需要在http://www.gnustep.or

基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案

基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案 两个月前做C++课设的时候,电脑编译器编译结果出现了中文乱码,寻求了百度和大神们,都没有解决这个问题,百度上一堆解释是对编译器进行设置之类的,结果没有一个有效果,暑假学习了用Dos来开发Java程序,输入cmd命令中dir(directory)进行查询操作时,显示了一堆中文乱码,原本是想重装系统的,因为电脑里面重要东西有点多,所以自己花了一段时间捣鼓了一下电脑,终于解决了如上两个问题,现在心里很开心,附上如下两幅图: cm