【SuperMap .Net 组件】新建平面场景与球面场景

用惯了ArcGIS Engine再用SuperMap的组件还是需要稍微适应一下的。按照最近使用SuperMap的体验可以得到这样的结论,SuperMap将一个完整的方案包装成一个Workspace(工作空间),Workspace中包括DataSource(数据集)、Map(地图)、Scene(场景)、Layout(排版)、还有用于存储符号的资源。数据都是以DataSet为集合存在DataSource中的,Map Scene Layout中存储的是对数据进行处理加工后的结果。如果以画画打个比方,那DataSource中就是画画用到的颜色,Map Scene Layout 就是绘制后得到的画,空间分析、叠加分析、专题图渲染就相当于画笔、工具。


那如果我们想新画一幅画应该怎么做呢?比如我想新建一个平面场景。我最初的想法是让Workspace中的Scenes新建一个Scene,不过发现它需要的参数是这样的:

public int Add(
	string name,
	string xml
)
让我们自己写xml,这不是搞笑呢么


问过超图的技术支持才知道,新建场景还需要重要的一步。我们需要新建一个SceneControl,获取里面的Scene,将其转为Xml,这个来作为参数。这就相当于,想要画画得先搞一个画布。那接下来就好办了,SceneControl的构造函数有一个重载可以选择场景类型,创建的时候就可以选好。

    Private Sub SimpleButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SimpleButton1.Click
        Me.TabControl1.TabPages.Add("平面场景")
        Dim count As Integer = Me.TabControl1.TabPages.Count
        Dim page As TabPage = Me.TabControl1.TabPages(count - 1)
        Dim scneControl As SuperMap.UI.SceneControl = New SuperMap.UI.SceneControl(SuperMap.Realspace.SceneType.NonEarthFlat)

        page.Controls.Add(scneControl)
        scneControl.Dock = DockStyle.Fill
    End Sub

    Private Sub SimpleButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SimpleButton2.Click
        Me.TabControl1.TabPages.Add("球面场景")
        Dim count As Integer = Me.TabControl1.TabPages.Count
        Dim page As TabPage = Me.TabControl1.TabPages(count - 1)
        Dim scneControl As SuperMap.UI.SceneControl = New SuperMap.UI.SceneControl(SuperMap.Realspace.SceneType.Globe)

        page.Controls.Add(scneControl)
        scneControl.Dock = DockStyle.Fill<pre name="code" class="vb">    End Sub
 

接下来就可以把里面的内容存入Workspace了

  Dim xml As String = m_SceneControl.Scene.ToXML()
  m_Workspace.Scenes.Add("newScene", xml)


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值