VB+MapX
上传用户:anyunliang
上传日期:2022-04-05
资源大小:2856k
文件大小:1k
- 有三种方法:
- 1. 由Layer对象的KeyField属性来设立要读取属性值的字段名。
- 接着,由Feature对象的keyvalue读取此行的属性值。
- 2. 将图层加入到Datasets, 由Dataset对象的value(x,y)属性,通过设置行号,列号来获得属性值。
- 3. 将图层加入到Datasets,之后由Rowvalues(ftr)获取整行的值。
- Dim ds As MapXLib.Dataset, lyr As MapXLib.layer
- Dim ftrs As Features
- Dim ftr As Feature
- Dim rv As Rowvalue
- Dim rvs As Rowvalues
- Dim DsName As String ‘数据集名
- Dim DsRows As Long, DsCols As Long
- Dim i As Long, j As Long
- Set ds = Formmain.Map1.Datasets.Item(DsName)
- Set lyr = ds.layer
- Set ftrs = lyr.AllFeatures
- DsCols = ds.Fields.Count
- DsCols = DsCols + 1
- DsRows = ftrs.Count
- Grid1.Rows = DsRows + 1
- Grid1.Cols = DsCols
- Grid1.Row = 0
- For i = 0 To DsCols - 1
- Grid1.Col = i
- Grid1.Text = ds.Fields.Item(i + 1).Name
- Next i
- Grid1.Col = DsCols - 1
- Grid1.Text = "Fkey"
- lyr.BeginAccess miAccessRead
- i = 1
- For Each ftr In ftrs
- Set rvs = ds.Rowvalues(ftr)
- j = 0
- For Each rv In rvs
- If Not IsNull(rv.value) Then Grid1.TextArray(i * DsCols + j) = Trim(rv.value)
- j = j + 1
- Next
- Grid1.TextArray(i * DsCols + j) = ftr.FeatureKey
- i = i + 1
- Next
- lyr.EndAccess miAccessEnd
- Set ftr = Nothing
- Set ftrs = Nothing
- Set ds = Nothing
- Set rv = Nothing
- Set rvs = Nothing
- Set lyr = Nothing