阅读:1553回复:2
一个非常简单的鹰眼实现办法
<P>网上查到的都是画element,但是试验发现用shape更加简单清晰</P>
<P>procedure TFrmMain.MapMainAfterDraw(ASender: TObject; Display: OleVariant;<BR> viewDrawPhase: Integer);<BR>var<BR> FillSymbol: IFillSymbol;<BR> pColor: IColor;<BR> outline: ILineSymbol;<BR> flag: WordBool;<BR> symbol: OleVariant;<BR>begin<BR> //红框<BR> pColor:=CoRgbColor.create as IColor;<BR> outline:= CoSimpleLineSymbol.create as ILineSymbol;<BR> pColor.Set_RGB(RGB(255, 0, 0));<BR> pColor.Set_Transparency(255);<BR> outline.Set_Color(pColor);<BR> outline.Set_Width(1.5);</P> <P> //填充<BR> pColor:=CoRgbColor.create as IColor;<BR> pColor.Set_RGB(RGB(0,0,0));<BR> pColor.Set_Transparency(0);<BR> FillSymbol:=CoSimpleFillSymbol.create as IFillSymbol;<BR> FillSymbol.Set_Color(pColor);<BR> FillSymbol.Set_Outline(outline);</P> <P> //画鹰眼<BR> MapEye.Refresh;<BR> symbol:=FillSymbol;<BR> MapEye.DrawShape(mapMain.Extent,symbol);<BR>end;</P> |
|
1楼#
发布于:2007-12-06 18:30
用render吧,element没有属性,所以还是建议保存为shape等格式
|
|
|
2楼#
发布于:2007-12-06 11:25
<P>另外请教怎么实现根据地图上显示的设备点的状态数据动态的改变颜色呢?</P>
<P>是用render还是drawshape?不会重新画那个点的element吧?</P> <P>render不能修改单个点哦,drawshape改好的颜色一刷新地图就没有了</P> |
|