skyline三维与arcgis二维同步方法实例

时间:2013-5-7    作者:悬浮的青春    分类: gis二次开发


 
话不多说。不罗嗦了。
直接贴代码吧
terrainX terrainY为三维窗口的坐标

private void tongbu(double terrainX, double terrainY)
        {
            ESRI.ArcGIS.Geometry.IPoint pPointt = new ESRI.ArcGIS.Geometry.PointClass();
            pPointt.X = terrainX;
            pPointt.Y = terrainY;
            //ESRI.ArcGIS.Geometry.IEnvelope IIEnvelope = new ESRI.ArcGIS.Geometry.EnvelopeClass();
            //获取三维窗口四角坐标。
            //////////////////////////////////////////////////////////////////////////////////////////
            object scwx, scwy, scwh;
            IRender.ScreenToTerrain(5, 5, out scwx, out scwy, out scwh);
            IIEnvelope.XMin = Convert.ToDouble(scwx);
            IIEnvelope.YMax = Convert.ToDouble(scwy);
            object scwx1, scwy1, scwh1;
            IRender.ScreenToTerrain(this.axTE3DWindow1.Width - 5, this.axTE3DWindow1.Height - 5, out scwx1, out scwy1, out scwh1);
            IIEnvelope.XMax = Convert.ToDouble(scwx1);
            IIEnvelope.YMin = Convert.ToDouble(scwy1);
            /////////////////////////////////////////////////////////////////////////////////////////
            //todo 设置全图范围同时缩放
            ////////////////////////////////////////////////////////////////////////////////////////
            // 在绘制前,清除 eyeViewMapControl 中的任何图形元素 
            axMapControl1.ActiveView.Extent = IIEnvelope;
            axMapControl1.ActiveView.Refresh();
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////
        }

标签: arcgis二次开发 winform skyline二次开发

WRITTEN BY

avatar

推荐阅读: