動態圖層處理

 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章