您的位置:首页 > 其它

如何使用ArcGIS9.2中的动态显示(Dynamic Display)技术(五)

2008-09-22 09:48 405 查看
ArcGIS9.3对Dynamic Display做了很大的改进,底层显示方式做了本质的一些改变。其中最大的变化是添加了IDynamicCacheLayerManager 接口,这个接口极大提升了动态图层显示时地图的显示效果,9.3以前的版本,地图的缩放都是重复刷新每个地图背景,在地图比较复杂的情况下,几乎是无法忍受的慢,但是如果采用9.3的新接口,可以在使用之前先用类似Arcgis Server的方法对地图进行cache工作,而后在IDynamicCacheLayerManager 中使用connect方法指定cache的文件夹,便能达到理想的效果,其实也可以自己利用该接口直接做cache,那么在多次浏览后,cache的效果使得地图背景显示的效果极佳。部分程序代码如下:

VARIANT_BOOL varCacheable;
ipLayer->put_Cached(VARIANT_TRUE);
IDynamicCacheLayerManagerPtr ipDynamicCacheLayerManager(CLSID_DynamicCacheLayerManager);
hr= ipDynamicCacheLayerManager->Init(m_ipMap,ipLayer);
hr=ipDynamicCacheLayerManager->get_Cacheable(&varCacheable);

CComBSTR bstrFoldName;
CComBSTR bstrFoldPath;
hr= ipDynamicCacheLayerManager->get_FolderPath(&bstrFoldPath);
hr= ipDynamicCacheLayerManager->get_FolderName(&bstrFoldName);
hr= ipDynamicCacheLayerManager->Connect(bstrFoldPath,bstrFoldName);

hr= ipDynamicCacheLayerManager->put_ConsolidatedGroupLayer(VARIANT_TRUE);
hr= ipDynamicCacheLayerManager->put_DetailsThreshold(20);
hr= ipDynamicCacheLayerManager->Invalidate(NULL,VARIANT_TRUE);
hr= ipDynamicCacheLayerManager->put_Format(CComBSTR("PNG"));

break;

目前也可以直接使用ArcGIS Server的地图服务作为Dynamic Layer显示背景。



何种情况下使用Dynamic Display比较合适

前期和客户做过目标显示的比对测试,如果动态目标个数在一千以上,选择使用Dynamic Display比较合适。

如果动态目标数量不多,则建议使用element,主要是程序实现比较简单。

扩展性和底层控制,Dynamic Display效果更好,但是仍有缺陷,例如symbol的部分中文支持。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: