cool小飞侠
路人甲
路人甲
  • 注册日期2004-08-02
  • 发帖数122
  • QQ
  • 铜币4枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1330回复:2

[求助]还是关于着色问题!!

楼主#
更多 发布于:2005-01-20 16:04
  
一个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

代码肯定没错。

就是不能用!!

喜欢0 评分0
cool小飞侠
路人甲
路人甲
  • 注册日期2004-08-02
  • 发帖数122
  • QQ
  • 铜币4枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-01-20 17:28
    开始我还以为point和line 的不行呢!!

   已经成功了,谢谢gis


[此贴子已经被作者于2005-1-20 17:34:11编辑过]
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于: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>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部