ArcGIS Mobile 10开发.doc_第1页
ArcGIS Mobile 10开发.doc_第2页
ArcGIS Mobile 10开发.doc_第3页
ArcGIS Mobile 10开发.doc_第4页
ArcGIS Mobile 10开发.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ArcGIS Mobile 10简介正如大家所知,ArcGIS 10目前已经发布,而对于关注Mobile的人们就特别期待ArcGIS Mobile10 的出现了,那么ArcGIS Mobile 10和以往有什么区别的呢,也正如大多数人估计的一样,首先ArcGIS Mobile 10安装程序已经从ArcGIS Server10中剥离了出来。你可以单独安装ArcGIS Mobile10在你的电脑上,相应的会在你的VS下添加Mobile的类库和组件。首先看一下ArcGIS10的安装界面,已经被汉化了对于英语吃力的人来说,这无疑是一个好的消息当ArcGIS10安装程序被分离后,又有哪些界面可供使用呢,现在我们就来看一下在安装目录下看到有Mobile Project Center程序,整个程序以前在9.3的时候是没有的,它是集成在ArcGIS Server Manage中,现在安装程序已经独立,自然Project Center也就独立出来了,Mobile Project Center主要的作用是创建和管理用于移动设备的ArcGIS Mobile Application。使用Mobile Project Center可以将互联网上或者是我们自己发布的Mobile Services建立Project,对地图、工具栏、地理处理能力等方面设置。本文只是对Mobile整体的一个介绍,再以后我们会详细的讲解如何具体使用Project Center。如果大家还有不太清楚Mobile Project Center是用来干什么的,可以到下面的网址进行详细的了解:/gallery/video/arcgis-mobile/details?entryID=86018768-1422-2418-8853-3213B5F47918再来看一下安装目录下ArcGIS Mobile程序来看看,ArcGIS Mobile 10对平板电脑支持更好了,它可以安装在windows XP Tablet PC、也可以直接装到Windows XP、2003、win7甚至ipdiso上都可以运行。目前对于外业进行数据采集的人员,有的时候移动设备的计算能力、电池的续航能力能无法满足需求,而平板电脑因为屏幕大、计算能力强、电池持续更久的特点更受到人们的青睐。而ArcGIS Mobile更像是为平板电脑量身定做似的。在外业工作时可以直接使用该程序。首先来看一下“下载项目”,它提供了俩种下载方式,你可以从本地服务器上发布的Mobile Service构建的Mobile Project中下载,也可以从ArcGIS.com上下载Project。大家可能都知道ArcGIS.com是目前世界上第一个支持云的GIS平台。在ArcGIS.com不仅可以发布自己的各种服务,当然也可以访问别人发布的服务,或者是自己团体内部共享的服务资源都可以通过ArcGIS.com来分享地理价值。如何你选择使用ArcGIS.COM来进行项目部署的话,首先你需要一个ESRI全球账户,这个当然不难得到,只需登陆到ESRI官网上就可以随时注册一个接下来我们来看一下安装ArcGISMobile后在VS中的控件吧,单从控件来看ArcGIS Mobile10和9.3没有太大的差别,只是将MobileService控件删掉,增加了MobileCache、MobileServiceConnection俩个控件。其实只是将原来MobileService的功能进行拆分到了俩个控件,一个用于管理缓存数据,一个用于连接服务器下载数据。还有就是新增一个TokenCredential控件,该控件主要用来通过验证加密的MobileService的。ArcGIS Mobile 10开发(一)之前为大家介绍了ArcGIS Mobile 10在安装程序和控件方面的更新,下面开始着手建立第一个移动应用程序的开发和部署。就像所有的程序开发一下,第一个程序就叫Hello World,下面就是基本的实现步骤1、 首先启动Visual Studio .NET 2008,并新建一个工程选择“智能设备”项目,然后在目标平台中选择Windows Mobile 5.0 Pocket PC SDK ,在.Net Compact Framework Version中选择2.0。2、 直接拖拽ArcGIS Mobile Controls中的Map控件到窗体上,这时你会发现窗体的控件栏上多了一个MobileCache1。不在是以前9.3时的MobileService控件。我们还需要对Map控件的DataSources属性设置为MobileCache1,这样就将数据源绑定到了Map控件中。然后将Map1控件的Dock属性设置为Fill,这样地图控件就充满全屏。对于屏幕本来就小的移动设备,这样更能让我看的比较舒服。3、 上面将Map控件和MapCache进行绑定还不能让我们直接显示地图,还需要写几句代码来设定Map的数据源在移动设备上的具体物理位置。如下:首先引用命名空间using ESRI.ArcGIS.Mobile;using ESRI.ArcGIS.Mobile.MobileServices;private void Form1_Load(object sender, EventArgs e)/ 指定地图缓存存放的位置 mobileCache1.StoragePath=Environment.GetFolderPath(Environment.SpecialFolder.Personal) + MapCache;if (!mobileCache1.IsValid)MessageBox.Show(Map Cache is not valid!);return;if (mobileCache1.IsEmpty)try / 如果指定位置没有地图缓存的话,从ArcGIS Server发布的Mobile Services上下载地图缓存,其中需要使用到mobileServiceConnection控件mobileServiceConnection1.Url=http:/YourServer/YourArcGISServerInstance/services/YourMobileServiceName/MapServer/MobileServer;mobileCache1.DeleteCache();MobileCacheSyncAgentmobilesync=new MobileCacheSyncAgent(mobileCache1,mobileServiceConnection1);mobileServiceConnection1.CreateCache(mobileCache1);mobilesync.Synchronize();catchMessageBox.Show(Cannot synchronize with this service);trymobileCache1.Open();catchMessageBox.Show(Cannot open map cache);4、 接下来就是配置我们程序的运行环境了,你可以直接连一个真实的移动设备(操作系统要求是windows Mobile 5)也可以部署到虚拟机里面。这里我先部署到虚拟机里面,程序调试一般也都在虚拟机里来完成。在VS2008工具栏中-“工具”-“设备仿真器管理器”5、 这个时候还需要往虚拟机里部署我们地图缓存,安装ArcGIS Mobile Runtime等操作,所以首先需要连接连通虚拟机,你可以通过Sync4.5或者Windows Mobile设备中心来连接虚拟机连接之后首先要将ArcGIS Mobile Runtime进行部署安装,ArcGIS安装路径Mobile10.0InstallAGMRuntime.CAB。该文件是ArcGIS Mobile在移动设备上的运行时,如果不安装该文件在程序运行时就会报Missing ArcGIS registry key的错误。接着就部署地图缓存了,根据上面代码中编写的一样我们在移动设备的My DocumentMapCache位置方式我们的地图缓存。ArcGIS Mobile 10开发(二)下面为大家介绍一下 ArcGIS Mobile中Mobile Project Center,在ArcGIS 9.3的时候该部分是存在于ArcGIS Server Manage中,在10中才分离出来,在本节并没有涉及到写代码的部分,但是Mobile Project Center却是开发必须了解的一个程序,通过Mobile Project Center建立的ArcGIS Mobile Application就像是一个模板,通过它可以直接构建一个成型的ArcGIS Mobile应用程序,在进行ArcGIS Mobile开发的时候,无论是界面搭配、还是程序实现的功能,都可以从Application借鉴。接下来看一下Mobile Project Center的基础使用,点击“新建”就会出现建立工程的界面在左边的工具栏中有三项可以进行配置:移动地图、任务、功能。这三项配置好以后,在移动端的部署的Mobile Application就会有我们上面配好的地图和工具了,下面我们看一下这三项是如何配置的。首先看一下“移动地图”,点击“移动地图”后,会发现图层分为俩类,一类是可操作地图图层、另外一类是地图图层。选择“添加”之后会弹出添加地图图层的对话框。如图,在图层栏进行了划分“添加可操作图层”和“添加地图图层”俩类,其中可操作图层中只有两类数据源选择,一种是自己通过ArcGIS Server发布的Mobile Service,直接进行访问获得地图缓存,另一类就是通过ArcGIS DeskTop中ArctoolBox中的GP工具创建的地图缓存。“添加底图图层”中数据来源就广了许多,首先是街道地图,这是在ArcGIS 10中新增的一种图层,是代替9.3中的SDC图层。文件格式是*.navmap。当然也可以把ArcGIS Server上的地图缓存添加到底图缓存中,还有就是ArcGIS Online的服务了。ArcGIS Online上的地图分为免费和收费,看一下免费地图都有些什么移动地图添加完成之后,来看一下“任务”栏的配置,默认有查看地图、采集要素、搜索、查看工作表、管理编辑内容,需要强调的是在“管理编辑内容”一栏中,有一个自动提交选项:可供选择项有(从不、连接后、数据更改时、时间间隔),如果选择时间间隔的话,就需要设定一下隔多长时间提交一下数据,这个提交数据是指由移动端向ArcGIS Server Mobile Service提交更新了的数据。“功能”栏里面默认只有登录、野外工作记录的俩个选择,如果需要更为复杂的功能,必须自定义了。设置完一直就可以直接保存该项目了,当然选择在Web服务器上,因为等会我们就要通过移动设备调用该服务了。顺便可以到IIS根目录下看一下C:inetpubwwwrootArcGISMobile工程对应的文件。下面我们在移动系统里下载之前的Mobile Project,首先保证你的移动设备能上网,比如说在适配器设置为“AsyncMac NDISWAN Miniport”使用服务器分配的IP地址。和在连接网络选择卡中设置为“单位连接”等操作,这里就不多啰嗦了。然后就到了安装ArcGIS Mobile程序了,从ArcGIS Mobile的安装路径下Mobile10.0InstallArcGISMobile.CAB文件拷贝到移动设备上然后安装,切记安装ArcGIS Mobile.CAB之前也需要安装ArcGIS Mobile runtime ,安装后如图:ArcGISMobile.CAB文件安装以后,便会在程序栏中下多一个程序,点击打开程序,如果是第一次打开程序,会提示你下载工程,然后选择从何处下载工程,从ArcGIS.COM或者自己ArcGIS Server发布的Mobile Project中下载工程,我们这里选择之前在Mobile Project Center中建立的工程,紧接着是填服务器名和实例名,如图填写计算机名/arcgis/mobile。 填入服务器名后正确后会自动列出该服务器中的所有Mobile Project,在我的电脑中有俩个工程,现在我们打开并下载yunnan_mobile工程,这是我之前使用云南的地图发布的一个Mobile Project,下载该工程的地图缓存数据,下载后就可以在移动设备中多一个yunnan_mobile文件夹,里面有对应的缓存数据,和ArcGIS Mobile 9.3数据格式已经不一样。以前9.3是有几个图层就有几个文件。Mobile10的缓存不管有几个图层,对应的缓存只有三个文件,MobileCache.db-journal、MapSchema.bin、MobileCache.db。在ArcGIS mobile的应用程序中,有很多功能、美观的界面、布局都值得我们借鉴,在初期的mobile开发中,可以按照这个界面和模式来开发一个自己的Mobile程序。其中菜单栏中GPS Status、Layer Visibility、identify、GetData等功能都是Mobile开发所必须实现的功能ArcGIS Mobile 10开发(三)这次主要是给大家介绍一下通过ArcGIS Mobile 10来实现网络分析的功能(最短路径计算)。考虑到手机或者PDA的CPU计算能力问题,在ArcGIS Mobile的类库中并没有提供最短路径计算的算法和相关类库,所以必须通过ArcGIS Server的GP服务来实现最短路径计算。实质就是在移动端给服务器端发送俩个或者多个点,并请求最短路径计算服务。由服务器端来实现最短路径的计算,然后将计算结果返回给移动端。效果如图:第一步,通过ArcGIS Server发布最短路径计算的GP服务。在ArcTutor实验数据(ArcTutorGP Service ExamplesShortestRoute)有样例数据和ShortestRouteService.tbx工具箱。第二步,在Mobile的解决方案中添加Web References添加GP地址http:/esri/arcgis/services/ShortestRouteService/GPServer?wsdl,并命名:GP Server第三部,编写调用GP服务的代码,首先在移动端构造两个参数点集合Coordinate,作为输入参数1。字符串,即GP服务的名称Calculate Shortest Route,作为输入参数2。如果用于不同的场景中,当然还要注意另外一个参数,即坐标系统的问题。 / 实例化一个GP server ShortestRouteService_GPServer m_gpServer = new GP_Server.ShortestRouteService_GPServer(); / 获取GP 模型的信息 GPToolInfo m_gpToolInfo = m_gpServer.GetToolInfo(“Calculate Shortest Route”); / 构建输入要素集 GPFeatureRecordSetLayer m_gpInputFeatureRecordsetLayer = (GP_Server.GPFeatureRecordSetLayer)gpModelParameterInfo0.Value;/此构建输入参数 GPValue gpValues = new GPValue1; / 发送请求到 GP server, 并记录 Job ID string jobID; jobID = m_gpServer.SubmitJob(m_gpToolInfo.Name, gpValues, new GP_Server.GPResultOptions(), new GP_Server.PropertySet(); / 从 GP server 获得结果 GPResult gpResult = m_gpServer.GetJobResult(jobID, null, gpResultOptions); 第四步,通过GP服务返回的结果,在移动端得Map控件中添加自定义的myLayer,并通过StrokePaintOperation类进行绘制,定义最短路径的符号化(线的颜色、宽度等)其中调用GP服务以及绘制最短路径的过程,我都写在了一个myLayer的类库中。附件中是该类得源码,如有需要可以直接下载下来使用。ArcGIS Mobile 10开发(四)加载切片数据在ArcGIS Mobile 10中新增命名空间ESRI.ArcGIS.Mobile.DataProducts.RasterData :专门用于提供显示栅格数据的类。下面我们就来看一下,如何应用该类在Mobile中加载栅格数据。 首先要试验的栅格数据是将我们通过ArcGIS Server发布服务切图获取的地图缓存数据。在ArcGIS10中新增的TileCacheMapLayer类,通过该类我们就可以将地图缓存拷贝到移动设备中,然后通过Map控件来读取切片数据,加载并显示在地图上。下图中看到的是沈阳市的地图,有两个图层。第一层是沈阳外环高速公路,为矢量图。第二层为沈阳市行政区划图,为Server切片数据。第一步,是获得Server的切片数据。发布服务和切缓存这里就不多介绍了。从C:arcgisserverarcgiscache中将切片数据拷贝到移动设备中,我这里用的是紧凑型格式的切片数据,方便拷贝。 将矢量数据和切片数据放到不同的文件下,比如将矢量数据放到MapCache中,将切片数据放到TileCache中。下面就是通过代码来实现Mobile中加载切片图层了。代码如下: /加载Til

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论