阅读:1555回复:1
求助!请问在AO中怎样做鹰眼图?
求助!请问在AO中怎样做鹰眼图?
|
|
1楼#
发布于:2007-05-15 16:19
<P> private void axMapControl1_OnExtentUpdated_1(object sender, ESRI.ArcGIS.MapControl.IMapControlEvents2_OnExtentUpdatedEvent e)<BR> {<BR> // 得到新范围</P>
<P> IEnvelope pEnv = (IEnvelope)e.newEnvelope;<BR> IGraphicsContainer pGra = axMapControl2.Map as IGraphicsContainer;<BR> IActiveView pAv = pGra as IActiveView;<BR> <BR> //在绘制前,清除axMapControl2中的任何图形元素<BR> pGra.DeleteAllElements();<BR> IElement pEle = new RectangleElementClass();<BR> pEle.Geometry = pEnv;<BR> </P> <P> //设置鹰眼图中的红线<BR> //产生一个线符号对象<BR> ILineSymbol pOutline = new SimpleLineSymbolClass();<BR> pOutline.Width = 2;<BR> pOutline.Color = GetColor(255, 0, 0,255);<BR> //设置颜色属性<BR> //设置填充符号的属性<BR> IFillSymbol pFillSymbol = new SimpleFillSymbolClass();<BR> pFillSymbol.Color = GetColor(9, 0, 0, 0);<BR> pFillSymbol.Outline = pOutline;<BR> IFillShapeElement pFillShapeEle = pEle as IFillShapeElement;<BR> pFillShapeEle.Symbol = pFillSymbol;<BR> pGra.AddElement((IElement)pFillShapeEle, 0);<BR> pAv.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);<BR> }</P> <P>private void axMapControl2_OnMouseDown(object sender, ESRI.ArcGIS.MapControl.IMapControlEvents2_OnMouseDownEvent e)<BR> {<BR> IPoint pPt = new PointClass();</P> <P> pPt.PutCoords(e.mapX, e.mapY);</P> <P> axMapControl1.CenterAt(pPt);<BR> </P> <P> }</P> <P> private IRgbColor GetColor(int r,int g,int b,int t)<BR> {<BR> IRgbColor pc = new RgbColorClass();<BR> pc.Red = r;<BR> pc.Green = g;<BR> pc.Blue = b;<BR> pc.Transparency = (byte)t ;<BR> return pc;<BR> }</P> |
|