欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap 谈天说地
   您现在位于: 首页技术专栏SuperMap应用与开发SO开发 → 正文
浏览属性数据
07-10-25 10:02:22 作者:未知 出处:超图

功能简介:

    通过选择对象来查询对象的属性,并根据当前所查询的数据集属性集合及记录位置进行向前、向后等方式的记录查询,通过当前记录的位置来查找集合对象,并把它高亮显示出来。

数据来源:..\Data\World目录下的World.sdb和World.sdd两个文件

    所用SuperMap Objects 组件、对象的主要属性和方法:

控  件 及 对 象 属  性 方  法
SuperWorkspace     OpenDatasource
SuperMap    EnsureVisibleGeometry
soRecordset RecordCount MoveFirst,MoveNext,MovePrev,,MoveLast 
soLayer dataset    
soDatasetVector    Query
soSelection dataset Add,RemoveAll

功能实现:

Dim objLayer as soLayer

Dim data As soDatasetVector
Set objLayerMove = SuperMap1.Layers(Combo1.Text)   
'获取被浏览的图层
Set data = objLayerMove.dataset                    
'获取图层的数据集 
Set recMove = data.Query("", False)                
'获取该数据集的全部记录 

  • 选择对象并显示对象属性

Private Sub SuperMap1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
   SuperMap1.Refresh
   Dim rec As soRecordset
   Set rec = SuperMap1.Selection.ToRecordset(False) 'save the selection to recordset
   If rec Is Nothing Then
       LstView1.ListItems.Clear
       Combo1.ListIndex = -1
       Exit Sub
   End If
   rec.MoveFirst
   LstView1.ListItems.Clear
   Combo1.ListIndex = -1
   Combo1.Text = SuperMap1.Selection.dataset.Name
   Dim recFieldN As Integer
   For recFieldN = 1 To rec.FieldCount
       LstView1.ListItems.Add , , rec.GetFieldInfo(recFieldN).Name
       If Not IsNull(rec.GetFieldValue(recFieldN)) Then
           LstView1.ListItems(LstView1.ListItems.Count).SubItems(1) = rec.GetFieldValue(recFieldN)
        End If
   Next recFieldN

End Sub

 

  • 移动记录显示记录属性及对象

    移动记录是在当前数据集的当前记录位置的基础上来进行前进或后退的移动,重新定位记录。定位成功后读取记录属性,并把该记录的目标显示出来。下面分别介绍了"移向第一个记录"、"移向前一个记录"、"移向下一个记录"、"移向最后一个记录"的具体方法,在重新定位后再显示数据及对象。(假设当前的记录定位在中间,即前后都有记录)

"移向第一个记录"  :  recMove.MoveFirst 

"移向前一个记录"  :  recMove.MovePrev

"移向下一个记录"  :  recMove.MoveNext 

"移向最后一个记录":  recMove.MoveLast

显示属性数据和几何对象:

Set objLayer = SuperMap1.Layers(Combo1.List(Combo1.ListIndex))
Set data = objlayer.dataset
Set SuperMap1.Selection.dataset = data
SuperMap1.Selection.RemoveAll
SuperMap1.Selection.Add recMove.GetID     
'高亮显示选中记录
'把地图的中心定位到几何对象的中心
Dim Obj As soGeometry
Set Obj = recMove.GetGeometry()
If Not Obj Is Nothing Then
    SuperMap1.EnsureVisibleGeometry Obj, 1  
'自动把视图大小放大到选中对象的视图大小
End If
SuperMap1.Refresh


(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  

    关于我们 友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.

                   滇ICP备05006901号