欢迎您来到GIS动力

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

功能简介:

    示范数据集的复制功能、矢量数据集的追加功能。

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

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

控  件 及 对 象 属  性 方  法
SuperWorkspace DataSource  OpenDatasource
SuperMap   AddDataset
soDatasetVector   Query,Append
soDataSource   CopyDataset

功能实现:

  • 复制源数据源中的一个或几个数据集到其他数据源

Dim objDestDS As soDataSource
Dim objSourceDS As soDataSource
Dim objDataSet As soDataset
Dim strDtName As String
Dim i As Integer, j As Integer

Set objSourceDS = Form1.SuperWorkspace1.Datasources.Item(cmbSourceDS.Text)
Set objDestDS = Form1.SuperWorkspace1.Datasources.Item(cmbDestDS.Text)

For i = 0 To lstDestDt.ListCount - 1
    lstDestDt.ListIndex = i
    strDtName = Trim$(lstDestDt.Text)
    If (objDestDS.IsAvailableDatasetName(strDtName)) = False Then 
  '数据集名合法判断
        chkRenameCopy.Value = 1
    End If
    If chkRenameCopy.Value = 1 Then
'改名复制,进行改名同名判断
        Do
            strDtName = Trim$(InputBox("目标数据源中有重名数据集名或数据集名" & vbCrLf & "非法,请输入新的数据集名:" & vbCrLf, , strDtName))
            If (objDestDS.IsAvailableDatasetName(strDtName)) Then
'数据集名合法判断
                Exit Do
            End If
        Loop
    End If
    Set objDataSet = objDestDS.CopyDataset(objSourceDS.Datasets.Item(lstDestDt.Text), strDtName)
Next

  • 往相同类型的数据集中追加数据

Dim objDS As soDataSource
Dim objSourceDtVector As soDatasetVector
Dim objDestDtVector As soDatasetVector
Dim objRecordset As soRecordset
Dim bResult As Boolean
Set objDS = Form1.SuperWorkspace1.Datasources.Item(cmbSourceDsName.Text) 
'取源矢量数据集
Set objSourceDtVector = objDS.Datasets.Item(cmbSourceDtName.Text)        
'取要追加的矢量数据集
Set objDS = Form1.SuperWorkspace1.Datasources.Item(cmbDsName.Text)        
If objDS.Datasets.Item(cmbDtName.Text).Vector = False Then
   MsgBox "所选数据集不是矢量数据集", vbInformation
   Exit Sub
End If
Set objDestDtVector = objDS.Datasets.Item(cmbDtName.Text)
objDestDtVector.Open
Set objRecordset = objDestDtVector.Query("", True)
bResult = objSourceDtVector.Append(objRecordset)      
'追加

  • 数据集管理

    实际上在SuperMap控件上您可以设置图层的"可见性"、"可选择性"、"可编辑性"、"可捕捉性"、"图层风格"等属性,还可以从SuperMap上移除图层及改变图层的索引号等操作。

Dim objLayers As solayers
Dim i As Integer, iLayerIndex As Integer
Dim nlistItemCount As Long
Dim Style as soStyle
Set objLayers = Form1.SuperMap1.layers
nlistItemCount = Me.lvLayersInfo.ListItems.Count
'图层数

设置为可见:   objLayers.Item(i).Visible = True

设置为可选择objLayers.Item(i).Selectable = True

设置为可编辑:   objLayers.SetEditableLayer (iLayerIndex)

设置为可捕捉:   objLayers.Item(i).Snapable = True

移除图层:     objLayers.Remove 1, 1  

设置风格,显示风格对话框:

    Set Style = Map.layers.Item(nLayerIndex).Style
    Dim nDimension As Long
    If Map.layers.Item(nLayerIndex).Dataset.Vector Then
         nDimension = Map.layers.Item(nLayerIndex).Dataset.Dimension
         Map.ShowStylePicker Style, nDimension
    End If

移到最顶层: objLayers.MoveTop nIndex        'nIndex 为移动的图层索引号

移到最底层: objLayers.MoveBotton nIndex     'nIndex 为移动的图层索引号

上移一层:   objLayers.MoveUp nIndex        'nIndex 为移动的图层索引号,不在最顶层

下移一层:   objLayers.MoveDown nIndex       'nIndex 为移动的图层索引号,不能在最底层


(本文已被浏览 次)
发布人: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号