VB辅导:VB实现地理对象的几种渲染方法

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  Private Sub Command1_Click()
  Map1.Layers.Clear
  Form_Load
  End Sub
  Private Sub Command2_Click()
  Screen.MousePointer = vbHourglass
  Map1.Layers("necenter").Visible = False
  Set layer = Map1.Layers("counties")
  '下面以hbeds_1000字段加入收藏 计算点数
  '获取hbeds_1000字段统计数据
  Set layer.renderer = New MapObjects2.DotDensityRenderer
  layer.renderer.Field = "hbeds_1000"
  Set stats = layer.Records.CalculateStatistics("hbeds_1000")
  With layer.renderer
  .DotColor = moRed
  .DotSize = 5
  '计算点数
  .DotValue = (stats.Min + (stats.Max - stats.Min) / 2) / 20
  End With
  Map1.Refresh
  Screen.MousePointer = vbDefault
  End Sub
  Private Sub Command3_Click()
  Screen.MousePointer = vbHourglass
  Map1.Layers("NeCenter").Visible = False
  '由记录中的STATE_NAME字段生成唯一序列值,Strings对象会自动识别重复的字符串
  Dim strings As New MapObjects2.strings
  Set layer = Map1.Layers("Counties")
  Set recs = layer.Records
  Do While Not recs.EOF
  strings.Add recs("STATE_NAME").Value
  recs.MoveNext
  Loop
  '建立新的ValueMapRenderer对象
  Set layer.renderer = New ValueMapRenderer
  '设置着色所依据的字段
  layer.renderer.Field = "STATE_NAME"
  '添加唯一值序列到ValueMapRenderer对象
  layer.renderer.ValueCount = strings.Count
  For i = 0 To strings.Count - 1
  layer.renderer.Value(i) = strings(i)
  Next i
  '刷新地图
  Map1.Refresh
  Screen.MousePointer = vbDefault
  End Sub
  Private Sub Command4_Click()
  Screen.MousePointer = vbHourglass
  Map1.Layers("necenter").Visible = False
  Set layer = Map1.Layers("counties")
  '建立新的ClassBreaksRenderer对象
  Set layer.renderer = New ClassBreaksRenderer
  Set r = layer.renderer
  '设置着色字段
  r.Field = "P_OTHER"
  '设置统计对象
  Set stats = layer.Records.CalculateStatistics("P_OTHER")
  '以字段P_OTHER的标准差为区间长度,在P_OTHER字段的平均值附近生成7个区间
  Dim breadVal As Double
  breakval = stats.Mean - (stats.StdDev * 3)
  For i = 0 To 6
  If breakval >= stats.Min And breadVal <= stats.Max Then
  r.BreakCount = r.BreakCount + 1
  '设置区间分界点
  r.Break(r.BreakCount - 1) = breakval
  End If
  breakval = breakval + stats.StdDev
  Next i
  '使用RampColors方法对区间序列渐变填色
  r.RampColors moLightYellow, moBlue
  Map1.Refresh
  Screen.MousePointer = vbDefault
  End Sub
  Private Sub Command5_Click()
  Screen.MousePointer = vbHourglass
  Map1.Layers("necenter").Visible = False
  Set layer = Map1.Layers("counties")
  Set layer.renderer = New MapObjects2.ClassBreaksRenderer
  Set r = layer.renderer
  r.Field = "P_OTHER"
  '设置区间数量为5
  nclasses = 5
  '获取记录数
  nrecs = layer.Records.Count
  r.BreakCount = nclasses - 1
  '获取所有地理对象的记录
  Set recs = layer.SearchExpression("FeatureID>-1 order by P_OTHER")
  '浏览记录并获取区间分界点
  For i = 1 To r.BreakCount - 1
  For j = 1 To nrecs / nclasses
  recs.MoveNext
  Next j
  r.Break(i) = recs("P_OTHER").Value
  Next i
  r.RampColors moLightYellow, moBlue
  Map1.Refresh
  Screen.MousePointer = vbDefault
  End Sub

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答