欢迎您来到GIS动力

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

功能简介:

    此示例的基本操作和其他示例代码的操作相似,基于此程序的操作项目多功能较全,但是操作相似性强且简单。下面将详细地说明每种功能的作用、实现条件及如何操作等综合事项;此示例代码较长,是因为此示例代码实现的功能多,但每个功能的实现代码都较短,很容易让初学者看懂。每个对象都有自己的属性对话框,当布局处于选择状态时双击某个对象即可弹出该对象的属性对话框,您可以通过对其中某个或全部属性的修改来改变对象的状态。注 意:SuperLayout控件集成了桌面排版的主要功能,利用这个控件,可以快速、方便地开发出精致的桌面地图排版系统。这个控件是SuperMap Objects 控件集合中的一个特色控件,且应用较容易,利于二次开发。这个示例程序中用到了该控件的大部分属性、方法和事件,为初学者提供了很好的教程。

数据来源: ..\Data\China目录下的China.swm和China1.smw

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

控  件 及 对 象

属  性

方  法

SuperWorkspace

 Layouts

OpenDatasource

SuperLayout

Selection,LytAction,Elements 

Remove,RemoveAll

功能实现:

Dim objLayouts as soLayouts
Set objLayouts = SuperWorkspace.Layouts

 

  • 打开布局对象(和打开地图对象一样)

 

SuperLayout.OpenLayout objLayouts(1)

 

  • 保存和另存布局对象

 

SuperLayout.SaveLayout                '必须是以打开布局的方式实现布局的存储

 

SuperLayout.SaveLayoutAs "Sample"     '如果重名则覆盖原来的

 

  • 删除布局对象

 

objLayouts.Remove 1              '必须由布局对象存在于SuperWorkspace中

 

objLayouts.RemoveAll

 

  • 布局对象的基本操作

选择对象: SuperLayout.LytAction = sclytActSel    '按住Shift可以进行多项选择
放大布局: SuperLayout.LytAction = sclytActZoomIn
缩小布局: SuperLayout.LytAction = sclytActZoomOut
漫游布局: SuperLayout.LytAction = sclytActPalm

 

  • 设置布局控件的基本属性

SuperLayout.LayoutSetup     '显示布局设置对话框,也可以通过代码实现同样的效果

 

  • 编辑布局中的对象在布局中绘制对象

    只要改变SupperLayout.LytAction的取值就能轻松改变SuperMap的操作状态(鼠标也改变),绘制各种对象。有些对象再绘制完后会自动弹出属性对话框,不要您再重新编写代码就能实现地图、图例、方向标等对象的绘制,而且效果很好。下面只给出了具有代表性的几种对象的绘制,其它的参考"程序员开发手册"。

SuperLayout.LytAction = sclytActArc       ' 绘制弧
SuperLayout.LytAction = sclytActEllipse  '  绘制椭圆
SuperLayout.LytAction = sclytActMap        '创建地图对象 

 

SuperLayout.LytAction = sclytActLegend     '绘制图例

 

SuperLayout.LytAction = sclytActDirection  ' 绘制方向标

 

SuperLayout.LytAction = sclytActScale      '绘制比例尺

 

  • 编辑布局中的对象

 

复制:SuperLayout.Selection.Copy     '需要有对象处于选中状态

 

剪切:SuperLayout.Selection.Cut      '需要有对象处于选中状态

 

粘贴:SuperLayout.Selection.Paste

 

删除:SuperLayout.Elements.Remove SuperLayout.Selection(1)  '需要有对象处于选中状态

 

  • 查看布局中对象的属性

 

SuperLayout.Selection(1).ShowPropertyDlg    '需要有对象处于选中状态,

假设SuperLayout.Selection(1)的类型是地图,则出现下面的属性框

 

 

 

  • 改变布局中对象的层次顺序(必须要有对象处于选中状态)

移至最前: SuperLayout.Elements.MoveTop SuperLayout.Selection(1)    
移至最后:SuperLayout.Elements.MoveTop SuperLayout.Selection(1)
前移一位:SuperLayout.Elements.MoveTop SuperLayout.Selection(1)
后移一位:SuperLayout.Elements.MoveTop SuperLayout.Selection(1)

 

 

 

  • 布局中地图对象的基本操作

对地图进行操作必须先选中地图对象,锁住地图对象,然后才能对它进行有效的操作.假设当前处于选中状态的只有地图对象。

Dim objselectedmap As soLytMap
Set objselectedmap = SuperLayout.Selection(1)

锁定地图对象: SuperLayout.Selection(1).MapHold = True  
放大地图:     objselectedmap.MapAction = scMapActZoomIn
缩小地图:     objselectedmap.MapAction = scMapActZoomOut
自由缩放:    objselectedmap.MapAction = scMapActZoomFree
漫游地图:     objselectedmap.MapAction = scMapActPan
全幅显示:    objselectedmap.ViewEntire

 

  • 对象之间的关系调整

组合:SuperLayout.Selection.Group
拆分:SuperLayout.Selection.Ungroup
居中:SuperLayout.Selection.CenterHorizontal
实现下面的代码必须要有对象处于选中状态;"对齐"、"等距"、"大小"是以最后一个被选中的对象为依据的
对齐:SuperLayout.Selection.AlignLeft     '左对齐
等距:SuperLayout.Selection.SpaceAcross   '让布局窗口中的选中对象的水平间距相等 
大小:SuperLayout.Selection.SameWidth     '等宽

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