ArcEngine中的地圖縮放相關的常用操作以及固定比例放大縮小

資料1:

這兩個功能,和全圖一樣簡單,也是繼承CommandBase基類

  public override void OnClick()
  {
      //Get IEnvelope interface
      IEnvelope pEnvelope = (IEnvelope)m_pActiveView.FullExtent;
      //Expand envelope and refresh the view
      pEnvelope.Expand(0.75, 0.75, true);
      m_pActiveView.Extent = pEnvelope;
      m_pActiveView.Refresh();
  }

   pEnvelope 是當前的地圖視圖,假定是1平米,屏幕大小也是1平米,現在將0.75平米的地圖在1平米的屏幕上顯示,也就是放大了,呵呵(這樣描述可能容易理解一 點)pEnvelope.Expand(0.75, 0.75, true);就是獲得0.75平米的地圖視圖,m_pActiveView 相當於屏幕。

  同理,縮小就是將1.25平米的地圖視圖,在1平米的屏幕上顯示。

 

資料2:

在ArcEngine地圖操作中,縮放地圖的功能經常用到,這裏做一個小結。

縮放地圖一般可分爲以下幾種情況:

1.縮放地圖:與放大地圖相對,一般是手動繪製區域或固定比例縮放,可調用命令或Expand函數來;

2.縮放到圖層:這一種用得比較多,通常是將圖層轉爲GeoDataset,利用其他Extent屬性來縮放到圖層;

3.縮放到選中:選中一個或多個要素,根據選擇的要素,創建Geometry,獲取Envelope。如果數據量太大,會比較耗時;

4.縮放到單個要素:有時,爲了截取,需要分別縮放到單個要素,這個非常簡單;

5.縮放到單個要素(需要準確顯示周圍信息):往往在縮放到單個要素時,由於圖斑形狀不同,可能不能準確顯示周圍信息,這時需要將地圖適當的再縮小一點,換言之,縮放擴大的單個要素(可用緩衝實現);

6.縮放到選擇圖層:這一種情況比較特殊,需要重點說明。我們在要素類中選擇部分要素後,可創建選擇圖層(pFeatureLayerDefinition的CreateSelectionLayer方法),如果我們直接獲取選擇圖層的Envelope來作爲顯示範圍,則不是我們想要的結果,選擇圖層的Envelope與源圖層的Envelope相同,不管選擇多少個要素。無奈,我使用了Envelope的Union方法,重新生成了準確的範圍。

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