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的部分中文支持。
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/jx1228/archive/2008/09/22/2959560.aspx