代码名称:vb.net+mapx5添加节点(包含属性)

作者/收集者:htdhy

开发环境:vb.net+mapx5

代码:

'声明常量
Public Const CreateRTUSymbolTool = 106

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'自定义工具
    AxMap1.CreateCustomTool(CreateRTUSymbolTool, ToolTypeConstants.miToolTypePoint, CursorConstants.miSizeAllCursor)
end sub

 Private Sub AxMap1_ToolUsed(ByVal sender As Object, ByVal e As AxMapXLib.CMapXEvents_ToolUsedEvent) Handles AxMap1.ToolUsed
        Dim lyr As MapXLib.Layer
        Dim ftr As MapXLib.Feature
        Dim FeaFac As MapXLib.FeatureFactory
        Dim rvs As Rowvalues
        Dim ds As Dataset

       Select Case e.toolNum
               Case CreateRTUSymbolTool
                '添加节点图标

                       '绑定 
                       lyr = AxMap1.Layers.Item(LyrName)
                       'LyrName是要添加新节点的图层的名称

                       ds = lyr.DataSets.Item(LyrName)
                       lyr.Editable = True  '置当前图层为可写状态
                       FeaFac = AxMap1.FeatureFactory

                       AxMap1.AutoRedraw = False   '禁止图层自动刷新
                       '创建点对象
                        pt.Set(e.x1, e.y1)
                        ftr = FeaFac.CreateSymbol(pt)        '创建符号 
  
                       '设置属性 

                       rvs = ds.Rowvalues(ds.RowCount - 1)
                       rvs.Item(1).value = Trim(TextBox1.Text)


                       '添加节点图标进当前图层并刷新图层
                       lyr.AddFeature(ftr, rvs)
                       lyr.Refresh()

                      AxMap1.AutoRedraw = True '恢复图层的自动刷新
                      lyr.Editable = False
                      '释放对象
                      pt = Nothing
                      FeaFac = Nothing
                      lyr = Nothing
                      ftr = Nothing
                      ds = Nothing
                           
            Case Else
        End Select 'End Case

end sub