您的位置:首页 > 其它

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

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

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





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







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





Mobile Basemap

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

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





在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 地图服务的空间参考需要是一致的。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: