C#制作鹰眼全过程(引自ESRI中国社区)
发布于 4 年前 作者 admin 2099 次浏览 来自 技术

*## 8. C#制作鹰眼全过程(引自ESRI中国社区)

axMapControl1是主控件,axMapControl2是鹰眼控件   

1.鹰眼地图资源载入

private void axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e)   
    {   
        //当主地图显示控件的地图更换时,鹰眼中的地图也跟随更换   
       axMapControl2.LoadMxFile(axMapControl1.DocumentFilename);   
        axMapControl2.Extent = axMapControl2.FullExtent;   
        }   

2.绘制鹰眼矩形框

private void axMapControl1_OnExtentUpdated(object sender, IMapControlEvents2_OnExtentUpdatedEvent e)   
{   
    // 得到新范围   
IEnvelope pEnv = (IEnvelope)e.newEnvelope;   
I GraphicsContainer pGra = axMapControl2.Map as IGraphicsContainer;   
   IActiveView pAv = pGra as IActiveView;   
//在绘制前,清除axMapControl2中的任何图形元素   
   pGra.DeleteAllElements();   
IRectangleElement pRectangleEle = new RectangleElementClass();   
IElement pEle = pRectangleEle as IElement;   
   pEle.Geometry = pEnv;    
   //设置鹰眼图中的红线框   
   IRgbColor pColor = new RgbColorClass();   
   pColor.Red = 255;   
pColor.Green = 0;   
 pColor.Blue = 0;   
   pColor.Transparency = 255;   
   //产生一个线符号对象   
ILineSymbol pOutline = new SimpleLineSymbolClass();   
   pOutline.Width = 2;   
pOutline.Color = pColor;   
   //设置颜色属性   
  pColor = new RgbColorClass();   
   pColor.Red = 255;    
   pColor.Green = 0;   
pColor.Blue = 0;   
pColor.Transparency = 0;   

//设置填充符号的属性

IFillSymbol pFillSymbol = new SimpleFillSymbolClass();   
   pFillSymbol.Color = pColor;   
   pFillSymbol.Outline = pOutline;   
 IFillShapeElement pFillShapeEle = pEle as IFillShapeElement;   
pFillShapeEle.Symbol = pFillSymbol;   
   pGra.AddElement((IElement)pFillShapeEle, 0);   
   pAv.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);   
}   

3. 实现互动

   private void axMapControl2_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)   
        {   
     IPoint pPt=new PointClass ();   
       pPt.PutCoords (e.mapX ,e.mapY );   
            //改变主控件的视图范围   
      axMapControl1 .CenterAt (pPt );   
        }
赞助本站 点击广告
回到顶部