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
    评论
MapObject(简称MO)是一种用于开发GIS应用程序的可视化编程组件,可以在VB、VC、Delphi、C#等开发环境使用。其主要功能包括地图显示、地图浏览、地图查询、符号绘制、地图分析等。 MO的核心是Map对象,它代表了一张地图。Map对象包含了地图数据、地图的显示方式、地图的空间参考等信息。在MO,地图数据通常以Shapefile格式存储,可以包括点、线、面等空间要素。 MO的编程模型是基于事件的,即程序通过响应组件的事件来完成操作。例如,当用户在地图上点击时,会触发Map控件的MouseDown事件,程序可以在该事件编写代码来响应用户的操作。 MO的程序设计入门可以从以下几个方面来学习: 1. 创建地图控件:在VB、VC等开发环境,可以通过向窗体添加Map控件来创建地图控件。在Delphi,需要在窗体上添加一个TMapControl控件,再通过代码创建Map对象并将其与TMapControl关联起来。 2. 加载地图数据:可以使用Map对象的AddLayer方法,将Shapefile文件加载到地图。加载后,可以设置要素的显示方式、标注等属性。 3. 地图操作:可以通过Map控件提供的方法,实现地图的缩放、平移、旋转等操作。例如,可以通过调用Map控件的ZoomIn方法实现地图放大,通过调用Map控件的Pan方法实现地图平移。 4. 地图查询:可以使用Map对象的SelectByShape方法,根据指定的查询条件进行地图查询。查询结果可以在地图上高亮显示。 5. 符号绘制:可以使用Map对象的Symbol对象,绘制点、线、面等符号。例如,可以使用Symbol对象的DrawPoint方法,绘制一个点符号。 以上是MO的一些基础概念和编程入门,希望可以帮助你进行MO学习和应用开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值