应用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
【VB+MapX编程实现地图数据查询】相关文章:
Vb中控件的自动排列05-09
中国大地保险公司实习报告05-09
2023年广东梅州中考成绩查询时间及查分入口[7月7日起]05-09
儿童舞蹈教程:国标新手上路05-09
2021湖北黄冈市浠水县基层医疗卫生机构专项招聘医务人员资格审查公告05-09
盐阜大众报报业集团(盐城)公开招聘《东方生活报》编辑记者的公告 2月25日到3月3日报名05-09
2020年高级会计师《高级会计实务》知识点:社会融资方式05-09
一年级数学奥数题及答案:猴子爬树05-09
5月11日开始报名!2023年内蒙古鄂尔多斯市乌审旗秋季幼升小入学条件和流程公布05-09
党员四风问题自查材料05-09
初中学校德育课程整合实施探究05-09
