mapx+vb 实时读取数据库

本文介绍了一种使用 MapXLib 在地图上动态更新图标位置的方法。通过创建图层并定时从数据库获取坐标更新图标的位置,实现了图标的实时移动效果。具体包括连接数据库、读取坐标、更新图元位置等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,实现图元根据数据库中X,Y字段的数据变化而改变位置

2,自己要另起一个线程,更改数据库的x,y的值

 

Private Sub Form_Load()

'1创建图层
Dim lyr As Layer
Set lyr = Map1.Layers.CreateLayer("Car")
Set Map1.Layers.AnimationLayer = lyr                '定义为动态图层

'2新建图元
Dim newobj As New MapXLib.Feature 'stand-alone object
Dim obj As MapXLib.Feature  'to hold feature added to layer
Dim NewStyle     As New MapXLib.Style
Dim str As String


newobj.Attach Map1

With NewStyle
        .SymbolType = miSymbolTypeBitmap
        .SymbolBitmapSize = 24
        .SymbolBitmapTransparent = True
        .SymbolBitmapName = "CAR1-32.BMP"
End With
newobj.Style = NewStyle                           '设置图元样式

newobj.Type = miFeatureTypeSymbol                 '设置图元类型

 

Set obj = Map1.Layers(1).AddFeature(newobj)

obj.Update

End Sub

 

 

 

Private Sub Timer1_Timer()

       timer1.Interval = 1000

       Dim lyr As MapXLib.Layer
       Set lyr = Map1.Layers("Car")
   
       Dim ftr As New MapXLib.Feature
       Dim ftrs As New MapXLib.Features
   
       Set ftr = lyr.AllFeatures.Item(1)
        ' **********************连接数据库        

        Set conn = New ADODB.Connection          
        Set rs = New ADODB.Recordset
      
        conn.ConnectionString = "Driver={sql server};server=127.0.0.1;uid=sa;pwd=password;database=databaseName"
        conn.ConnectionTimeout = 10
        conn.Open
        rs.Open "select x,y from X_Y", conn, adOpenStatic, adLockReadOnly, adCmdText  
          ' **********************连接数据库       
         ftr.Point.Set rs.Fields("x").Value, rs.Fields("y").Value         '设置图元位置
         ftr.Update

 

End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值