gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:1988回复:1

二三维联动工具类【源码+文档】

楼主#
更多 发布于:2011-11-17 16:41
<p>下载地址:</p>
<p><a href="attachment/2011-11/201111171641431174.rar">2011-11/201111171641431174.rar</a><br/></p>
<p> </p>
<p>  </p>
<p>思路:与鹰眼做比较</p>
<p>预计可用到的函数,变量等:</p>
<p>axSceneControl1.Scene.RecalculateExtent();</p>
<p>pEnv = axSceneControl1.Scene.Extent;</p>
<p>pEnv=axSceneControl1.SceneGraph.get_OwnerExtent(axSceneControl1, true);</p>
<p>是否可用一个MapControl控件做中转控制SceneControl的缩放;</p>
<div>
<p>关键:找到SceneControl控件的缩放事件;SceneControl的可读写Extext的包络线属性</p></div>
<p><br/> </p>
<p>已解决: 可以在工具的OnCreate()方法里将ArrayList类型的对对象传出来,ArrayList里存放的是mapcontrol.object,scenecontrol.object,</p>
<div>
<p>public override void OnCreate(object hook)<br/>        {<br/>            try<br/>            {<br/>                m_hookHelper = new HookHelperClass();<br/>                m_SceneHookHelper = new SceneHookHelperClass();<br/>                //m_hookHelper.Hook = hook;<br/><br/>                ArrayList arrControls = hook as ArrayList;<br/>                m_hookHelper.Hook = arrControls[0] as object;<br/>                m_SceneHookHelper.Hook = arrControls[1] as object;<br/><br/>                if (m_hookHelper.ActiveView == null)<br/>                {<br/>                    m_hookHelper = null;<br/>                }<br/>            }<br/>            catch<br/>            {<br/>                m_hookHelper = null;<br/>            }<br/><br/>            if (m_hookHelper == null)<br/>                base.m_enabled = false;<br/>            else<br/>                base.m_enabled = true;<br/><br/>            // TODO:  Add other initialization code<br/>        }<br/><br/>调用Tool的代码<br/><br/>          ArrayList arrControls = new ArrayList();<br/>            arrControls.Add(m_mapControl.Object);<br/>            arrControls.Add(m_sceneControl.Object);<br/><br/>            ICommand pCmd = new MyCustomTool();<br/>            pCmd.OnCreate(arrControls as object);<br/>            m_mapControl.CurrentTool = pCmd as ITool;</p></div>
<p><br/>功能:移动二维视图,三维视图随之移动,反之也可!原理相同!</p>
<p>问题:</p>
<p>1 二维平移是否与三维飞行联系起来</p>
<p>2 二三维同步缩放的比例把握未解决,并且功能还不完善</p>
喜欢0 评分0
GIS麦田守望者,期待与您交流。
bluebaby
路人甲
路人甲
  • 注册日期2006-07-04
  • 发帖数4
  • QQ
  • 铜币114枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2011-12-08 15:37
好东西 谢谢楼主
举报 回复(0) 喜欢(0)     评分
游客

返回顶部