VB+MapX編程實現地圖數據查詢
綜述
應用MapX控件實現查詢的功能并不太難。MapX為我們提供了Find、FindFeature等對象,可以用來實現我們需要的功能。
1、本程序實現從下列表中選擇一個節點,并以此節點為中心進行進行定位的功能(實例以第一層RTUName屬性的值進行查詢)
2、把上面的程序稍微改寫一下,實現按照用戶輸入的字段進行查詢定位的功能:
應用MapX控件實現查詢的功能并不太難。MapX為我們提供了Find、FindFeature等對象,可以用來實現我們需要的功能。
1、本程序實現從下列表中選擇一個節點,并以此節點為中心進行進行定位的功能(實例以第一層RTUName屬性的值進行查詢)
| Private Sub Command1_Click() Dim FindObj As MapXLib.Find Dim FoundFeature As FindFeature '從要查詢的RTU圖層生成Find對象,并為這個對象設置要查詢的FindDataSet、FindField屬性 Set FindObj = Form1.Map1.Layers.Item(1).Find Set FindObj.FindDataset = Form1.Map1.DataSets("RTU節點" & " dataset") Set FindObj.FindField = FindObj.FindDataset.Fields("RTUName") Set FoundFeature = FindObj.Search(Combo1.Text) Me.Hide ' 關掉AutoRedraw是因為CenterX(Y)的改變就要刷新圖層,AutoRedraw打開的話會造成二次刷新 Form1.Map1.AutoRedraw = False Form1.Map1.CenterX = FoundFeature.CenterX Form1.Map1.CenterY = FoundFeature.CenterY Form1.Show End Sub |
2、把上面的程序稍微改寫一下,實現按照用戶輸入的字段進行查詢定位的功能:
| Private Sub Command2_Click() Dim FindObj As MapXLib.Find Dim FoundFeature As FindFeature '從要查詢的RTU圖層生成Find對象,并為這個對象設置要查詢的FindDataSet、FindField屬性 Set FindObj = Form1.Map1.Layers.Item(1).Find Set FindObj.FindDataset = Form1.Map1.DataSets("RTU節點" & " dataset") Set FindObj.FindField = FindObj.FindDataset.Fields("RTUName") Set FoundFeature = FindObj.Search(Text1.Text) If FoundFeature.FindRC Mod 10 = 1 Or FoundFeature.FindRC Mod 10 = 2 Then Me.Hide ' 關掉AutoRedraw是因為CenterX(Y)的改變就要刷新圖層,AutoRedraw打開的話會造成二次刷新 Form1.Map1.AutoRedraw = False Form1.Map1.CenterX = FoundFeature.CenterX Form1.Map1.CenterY = FoundFeature.CenterY Form1.Show Else MsgBox "不存在該RTU節點!" End If End Sub |