【SuperMap .Net 组件】地图与场景同步(二) 视图范围同步

二维地图与三维场景的同步主要就是视图的同步。原理很简单,Scene去同步Map的过程就是获得Map的视图范围,然后让Scene显示这个范围,Map去同步Scene的过程就是获得Scene的视图范围,然后让Map显示这个范围。实际也是这个过程,但是Scene的视图范围不是那么好获得的,需要按照高度和视角去计算。另外,根据场景的类型不同(平面还是球面),计算过程也稍有不同。详细代码如下

找个地方先把事件和用于捕捉的函数绑定:

        AddHandler m_MapControl.Map.Drawn, AddressOf MapDrawnHandler
        AddHandler m_SceneControl.Scene.Timer.Tick, AddressOf SceneTimerTickHandler

Scene同步Map:

 Private Sub MapDrawnHandler(ByVal sender As Object, ByVal e As MapDrawnEventArgs)

        '投影坐标转为地理坐标(如果本来就是地理坐标则不发生变化)
        Dim centerPoint As Point2D = New Point2D(m_MapControl.Map.Center.X, m_MapControl.Map.Center.Y)

        Dim left As Double = m_MapControl.Map.ViewBounds.Left
        Dim right As Double = m_MapControl.Map.ViewBounds.Right
        Dim top As Double = m_MapControl.Map.ViewBounds.Top
        Dim bottom As Double = m_MapControl.Map.ViewBounds.Bottom

        Dim lbPoint As Point2D = New Point2D(left, bottom)
        Dim rtPoint As Point2D = New Point2D(right, top)

        Dim points As Point2Ds = New Point2Ds(New Point2D() {centerPoint, lbPoint, rtPoint})
        Dim prjCoordS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值