|
阅读:1330回复:2
[求助]还是关于着色问题!!一个map控件中加载了3个矢量图层,现在希望在窗体初始化时令其中一个多边形图层显示名字,我用的是labelrenderer着色方法;还需要为3个 图层中的一个线形图层用唯一值着色方法着色,valuemaprenderer,可是却怎么也着不上色,而且该图层也看不到了。为什么??我换了几个线形 图层就不行,多边形就可以。 Dim MLayer As MapObjects2.MapLayer Set MLayer = New MapObjects2.MapLayer Set MLayer = Map1.Layers("yhxl") Set vmr_2 = New MapObjects2.ValueMapRenderer Dim recs2_2 As New MapObjects2.Recordset Dim str2 As New MapObjects2.Strings Dim a As Integer Set recs2_2 = MLayer.SearchExpression("FeatureId>-1 order by classes") Do While Not recs2_2.EOF str2.Add recs2_2.Fields("classes").Value recs2_2.MoveNext Loop vmr_2.Field = "classes" vmr_2.UseDefault = True vmr_2.ValueCount = str2.count '5 For a = 0 To str2.count - 1 vmr_2.Value(a) = str2(a) If a = 0 Then vmr_2.Symbol(a).Size = 5 vmr_2.Symbol(a).Color = moRed ElseIf a = 1 Then vmr_2.Symbol(a).Color = RGB(10, 147, 252) End If Next a Set MLayer.Renderer = vmr_2 Map1.Refresh 代码肯定没错。 就是不能用!! |
|
|
1楼#
发布于:2005-01-20 17:15
<P>这个可以用,你自己看看区别吧,拷贝到窗体就可以用,注意图层名字和字段名字</P><P>Option Explicit</P><P>Private Sub Command1_Click()</P><P>Dim vmr As New MapObjects2.ValueMapRenderer
vmr.Field = "PopRange" vmr.SymbolType = moPointSymbol <FONT color=#ff3300>vmr.ValueCount = 3 vmr.Value(0) = "Low" vmr.Value(1) = "Medium" vmr.Value(2) = "High"</FONT></P><P>Dim fnt As New stdole.StdFont fnt.Name = "ESRI Cartography"</P><P>Dim i As Integer For i = 0 To 2 With vmr.Symbol(i) .SymbolType = moPointSymbol .Style = moTrueTypeMarker .Size = 12 Set .Font = fnt .CharacterIndex = 65 + i End With Next i</P><P> 'vmr.Symbol(0).Style = moCircleMarker 'vmr.Symbol(1).Style = moTriangleMarker 'vmr.Symbol(2).Style = moCrossMarker</P><P>Set Map1.Layers(0).Renderer = vmr</P><P>Map1.Refresh</P><P>End Sub</P><P>Private Sub Form_Load()</P><P>Dim dc As New MapObjects2.DataConnection Dim mlyr As New MapObjects2.MapLayer dc.Database = App.Path dc.Connect Set mlyr.GeoDataset = dc.FindGeoDataset("<FONT color=#f73809>capitals</FONT>") mlyr.Symbol.Color = moBlue Map1.Layers.Add mlyr</P><P>End Sub </P> |
|
|
|
2楼#
发布于:2005-01-20 17:28
开始我还以为point和line 的不行呢!!
已经成功了,谢谢gis [此贴子已经被作者于2005-1-20 17:34:11编辑过]
|
|