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方法,重新生成了准确的范围。

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