『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯
首页 -> 3S基础知识 -> MapInfo-> 正文

应用MapX编程实现地图数据查询

应用MapX编程实现地图数据查询
       应用MapX控件实现查询的功能并不太难。MapX为我们提供了FindFindFeature等对象,可以用来实现我们需要的功能
       应用MapX控件实现查询的功能并不太难。MapX为我们提供了FindFindFeature等对象,可以用来实现我们需要的功能:)

       1、本程序实现从下列表中选择一个节点,并以此节点为中心进行进行定位的功能(实例以第一层RTUName属性的值进行查询)

Private Sub Command1_Click()

    Dim FindObj As MapXLib.Find

    Dim FoundFeature As FindFeature

    '从要查询的RTU图层生成Find对象,并为这个对象设置要查询的FindDataSetFindField属性

    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对象,并为这个对象设置要查询的FindDataSetFindField属性

    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

      京ICP备08100627号-22 京公网安备 11010802030428号