阅读:2149回复:5
为什么mo在渲染操作后就不显示标注了
<P>为什么我做除了labelrenderer外的渲染操作后就不显示标注了呢,是不是有什么地方要设置的?</P>
<P>另外mo是不是不能载入mxd文件,那只能自己去加载图层了,那些配色和在一定比例下显示一定图层的设置也需要自己在载入的时候控制了?</P> |
|
1楼#
发布于:2008-05-27 11:52
<P>分类渲染代码</P>
<P>procedure TFrmMain.TestClassRenderer(LName:String;FldName:String;break1,break2:double);<BR>var<BR> layer:MapLayer;<BR> pRenderer:ClassBreaksRenderer;<BR> moRecset:IMoRecordset;<BR> oStats:IMoStatistics;<BR> fBreakVal:Double;<BR> i:Integer;<BR>begin<BR> layer:=GetLayerByName(LName);</P> <P> pRenderer:=CoClassBreaksRenderer.Create as ClassBreaksRenderer;<BR> layer.Renderer:=pRenderer;</P> <P> pRenderer.SymbolType:=layer.Symbol.SymbolType;<BR> pRenderer.DrawBackground:=true;</P> <P> pRenderer.Field:=FldName;<BR> pRenderer.BreakCount:=2;<BR> pRenderer.Break[0]:=break1;<BR> pRenderer.Break[1]:=break2;</P> <P> if layer.Symbol.SymbolType=moFillSymbol then begin<BR> pRenderer.Symbol[0].OutlineColor:=moRed;<BR> pRenderer.Symbol[1].OutlineColor:=moGreen;<BR> pRenderer.Symbol[2].OutlineColor:=moPurple;<BR> end else if layer.Symbol.SymbolType=moPointSymbol then begin<BR> pRenderer.Symbol[0].Style:=moCircleMarker;<BR> pRenderer.Symbol[0].Size:=6;<BR> pRenderer.Symbol[1].Style:=moCircleMarker;<BR> pRenderer.Symbol[1].Size:=6;<BR> pRenderer.Symbol[2].Style:=moCircleMarker;<BR> pRenderer.Symbol[2].Size:=6;<BR> end else if layer.Symbol.SymbolType=moLineSymbol then begin<BR> pRenderer.Symbol[0].Size:=1;<BR> pRenderer.Symbol[0].Style:=moSolidLine;<BR> pRenderer.Symbol[1].Size:=1;<BR> pRenderer.Symbol[1].Style:=moSolidLine;<BR> pRenderer.Symbol[2].Size:=1;<BR> pRenderer.Symbol[2].Style:=moSolidLine;<BR> end;</P> <P> pRenderer.Symbol[0].Color:=moRed;<BR> pRenderer.Symbol[1].Color:=moGreen;<BR> pRenderer.Symbol[2].Color:=moPurple;</P> <P> Map1.Refresh;<BR>end;</P> <P>测试成功,但是文字标注就没了,不知道问题出在哪里,请指正!</P> |
|
2楼#
发布于:2008-05-27 16:04
没有人遇见过这个问题吗?
|
|
3楼#
发布于:2008-05-28 09:01
up
|
|
4楼#
发布于:2008-06-02 11:13
<P>up</P>
|
|
5楼#
发布于:2008-06-25 03:09
<P>用grouprenderer</P>
|
|
|