mo学习笔记2

1MO连接ArcSDE

  ArcSDE是空间数据引擎。支持分布访问,并发机制和事务

Dim dc As New  MapObjects.DataConnection    连接对象,连接地图数据SDE服务

dc.Server = "SDE83:servername"               ‘servername是数据服务所在服务器

dc.User ="sa"

  dc.Password = "sa"

  dc.Database = "instance=esri_sde;database=SDE" ‘esri_sde是数据实例,SDE是数据库名称

  If dc.Connect Then   

    List1.Clear

    For Each gs In dc.GeoDatasets              获取读取的每个图层名称

      List1.AddItem gs.Name

    Next gs

  Else

    MsgBox ConnectErrorMsg(dc.ConnectError), vbCritical, "Connection Error"

  End If

 

2.获得属性

获得空间地理坐标相关的属性信息

Set l = Map1.Layers("layername")      '获得the layer

  Set p = Map1.ToMapPoint(x, y)        ' 转换屏幕坐标到地理坐标

  Set recs = l.SearchShape(p, moPointInPolygon, "") '执行查询 点信息

    If Not recs.EOF Then               '执行查询有结果

        For Each fld In recs.Fields       ' 结果存放在fields中,轮循可以获得结果

          Set newItem = ListView1.ListItems.Add

          newItem.Text = fld.Name      ' 获得字段名称

          newItem.SubItems(1) = fld.ValueAsString  ' 获得字段值

       Next fld

  End If

 

3.加入图像图层

  图像图层访问

Dim dc As New DataConnection

  Dim dataDir As String

  dataDir = ReturnDataPath("washington")

  dc.Database = dataDir

  If Not dc.Connect Then End

  Dim iLayer As New ImageLayer      ' 加入图像图层 ImageLayer

  iLayer.File = dataDir & "/Wash.bmp"  ' 制定图像图层文件名称

  Map1.Layers.Add iLayer

  Dim mLayer As New MapLayer' add MapLayer roads  ' 加入矢量图层 MapLayer

  Set mLayer.GeoDataset = dc.FindGeoDataset("roads")  ' 制定矢量图层文件名称

 

  mLayer.Symbol.Color = moYellow

  Map1.Layers.Add mLayer

 

4.设置鼠标形状

Map1.MousePointer = moZoom‘放大

Map1.MousePointer = moPan‘漫游

 

5.图标显示

Map1.Layers.Add layer

Set layer.Renderer = reder    ‘reder ValueMapRenderer结构存放图标信息

 

6.跟踪图层的操作

初始化 两个Event事件

Dim fnt As New StdFont

  fnt.Name = "Wingdings"

  fnt.Bold = False

Map1.TrackingLayer.Symbol(0).Style = moCircleMarker

Map1.TrackingLayer.Symbol(0).Color = moRed

Map1.TrackingLayer.Symbol(0).Size = 6

  Map1.TrackingLayer.SymbolCount = 2

  Map1.TrackingLayer.Symbol(0).Color = moBlue

  Map1.TrackingLayer.Symbol(0).Style = moTrueTypeMarker

  Map1.TrackingLayer.Symbol(0).Font = fnt

  Map1.TrackingLayer.Symbol(0).Size = 16

  Map1.TrackingLayer.Symbol(0).CharacterIndex = 88

  Map1.TrackingLayer.Symbol(1).Color = moDarkGreen

  Map1.TrackingLayer.Symbol(1).Style = moTrueTypeMarker

  Map1.TrackingLayer.Symbol(1).Font = fnt

  Map1.TrackingLayer.Symbol(1).Size = 16

  Map1.TrackingLayer.Symbol(1).CharacterIndex = 88

增加事件

Sub AddEvent(x As Single, y As Single)

    Set pt = Map1.ToMapPoint(x, y)         ' convert the point to map coordinates

    Map1.TrackingLayer.AddEvent pt, sym   ' add a new event

End Sub

当前跟踪层中的事件个数

Map1.TrackingLayer.EventCount

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值