使用ArcGIS Mobile SDK 9.3 开发移动设备应用-高级篇

【概述】概述如何 通过ArcGIS Server 9.3提供的Mobile SDK开发移动设备应用。
【环境】Windows XP SP3,ArcGIS Server 9.3,Visual Studio 2008,Windows Mobile 6 Professional SDK

 

预生成地图缓存

我们已经知道,ArcGIS Mobile支持离线和在线两种应用。我们可以选择让ArcGIS Mobile应用在首次请求的时候保存地图缓存,也可以在此之前(部署应用之前),预先生成缓存,跟应用一起发布。是不是有点像原来的单机设备应用?

好, 让我们把ArcCatalog打开,启动ArcToolbox工具箱:

image

在工具箱中,找到“Mobile Tools”。ArcToolbox专门为Mobile应用提供了两个工具。其中“Generate Mobile Service Cache”就是用以生成Mobile地图服务的缓存。

image image

点击确认,经过处理,在指定目录生成了缓存。我 们可以比较一下,这些缓存和在移动设备上通过MobileService对象生成的缓存是一样的。换句话说,在部署的时候将这些缓存部署到缓存目录以 后,MobileService可以直接打开它,无需与服务器进行任何交互。

image

 

Mobile Basemap

这是Mobile的特殊数据,目的在于通过对地图数据进行高度压缩,使之在移动设备上的性能更加优化。Basemap与 我们前面使用的Mobile地图服务数据不同,Basemap是不提供用户进行操作的,它将在程序运行时首先被渲染,其他所有的Mobile地图都将在它 之上绘制——简单地说,它应该被称为底图。

创建Mobile Basemap很简单,我们从ArcToolbox中点击“Create Mobile Basemap”,根据提示操作即可。一个mxd文档对应一个navmap文件,每个图层也都有相应的对应文件。

image

在ArcGIS Mobile中,有个专门的命名空间“ESRI.ArcGIS.Mobile.SdcData”,这个命名空间包括了所有对Basemap进行操作的类。 事实上,Mobile Basemap对应的数据叫做SDC base map data。

Basemap的使用非常简单:

            try
            {
                ESRI.ArcGIS.Mobile.SdcData.SdcMapLayer sdcMapLayer = new ESRI.ArcGIS.Mobile.SdcData.SdcMapLayer (@"/Storage Card/bj_basemap/bj.navmap" );
                map.MapLayers.Add(sdcMapLayer);
            }
            catch (Exception ex)
            {
                MessageBox .Show(ex.Message);
            }

看一下效果。我们把整个北京地图生成了Basemap预先部署到移动设备上,而仅仅将建筑物图层发布成地图服务,如图,Basemap自动衬在底 部,想一下,对于某些应用,你会不会有一种把所有不经常变化的内容全部生成Basemap的冲动?

哦,还需要说明一下,Basemap 和其他Mobile 地图服务的空间参考需要是一致的。

image

 

开发移动桌面程序

说是移动桌面程序,跟不移动的桌面程序有区别么?所以,这一部分需要说的内容实在太少了,在移动设备上开发调试都可以过来了,桌面程序还有困难 么?

当然,还是有一点点小地方需要注意。比如新建工程,一定不要采用默认设置.Net Framework为3.5版本。

image

 

常见问题

以 下是Develop Help中提到的一些常见问题:

1. ArcGIS 9.3 的Mobile SDK 是否使用ArcGIS 9.2 发布的Mobile Service
很遗憾,不能……

2. 我能用Visual Studio 2003 开发ArcGIS Mobile 应 用吗?
不能,ArcGIS 9.3 Mobile SDK需要.Net Compact Framework 2.0支持。

3. 我生成了Mobile 应用,但是为什么我看不到地图?
出现这个问题,如果你使用了地图缓存,检查你的缓存 路径是否正确。如果是从服务器获取数据,那么检查你的Mobile 地图服务是否正常工作。同时,确认你的Map控件的Datasource属性中的MobileService对象设置正确。

4. 为什么ArcGIS Mobile toolbox 没被添加到Visual Studio 2008 工程中 来?
ArcGIS 9.3 Mobile SDK不能和.Net (Compact) Framework 3.5兼容,这是Visual Studio 2008的默认设置,注意在新建工程的时候选择正确的.Net Framework。

5. 如何获得开发ArcGIS Mobile 应用的最新信息?
http://edn.esri.com/index.cfm?fa=mobile.gateway

【结语】好了,到这里,ArcGIS Mobile SDK 9.3的整体内容已经基本介绍完成。ArcGIS Mobile作为ArcGIS Server的一部分发布,其与ArcGIS Server也的确是紧密相连。当然,事实上在某些条件下,ArcGIS Mobile还是可以脱离ArcGIS Server跑起来的。希望本文能给你开发移动GIS应用带来一点帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值