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的部分中文支持。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/jx1228/archive/2008/09/22/2959560.aspx