ArcGIS Engine100轻松入门级教程5.docx

上传人:b****6 文档编号:2921736 上传时间:2022-11-16 格式:DOCX 页数:14 大小:159.11KB
下载 相关 举报
ArcGIS Engine100轻松入门级教程5.docx_第1页
第1页 / 共14页
ArcGIS Engine100轻松入门级教程5.docx_第2页
第2页 / 共14页
ArcGIS Engine100轻松入门级教程5.docx_第3页
第3页 / 共14页
ArcGIS Engine100轻松入门级教程5.docx_第4页
第4页 / 共14页
ArcGIS Engine100轻松入门级教程5.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

ArcGIS Engine100轻松入门级教程5.docx

《ArcGIS Engine100轻松入门级教程5.docx》由会员分享,可在线阅读,更多相关《ArcGIS Engine100轻松入门级教程5.docx(14页珍藏版)》请在冰豆网上搜索。

ArcGIS Engine100轻松入门级教程5.docx

ArcGISEngine100轻松入门级教程5

ArcGISEngine10.0轻松入门级教程(5)——ArcEngine10.0三维开发

      该系统分为四个模块,分别是文件的操作、场景的浏览、点查询和矢量文件生成TIN。

下面分别对这四个模块做详细介绍。

     文件操作。

该模块包括打开工程文件(打开sxd文件)、打开栅格文件(打开Raster文件)和保存图片文件。

所用到的控件有:

SceneControl控件(用于显示打开的工程文件和栅格文件)、Button控件、OpenFileDialog控件、SaveFileDialog控件、TabControl控件(页面布局控件)、TOCControl控件(用于显示图层)。

其布局如下:

控件类型

Text属性

控件名称

备注

SceneControl

mSceneControl

显示数据

TOCControl

mTOCControl

 显示图层

Button

打开sxd文件

OpenSxdFile

打开工程的文件

Button

打开Raster文件

OpenRasterFile

打开栅格的文件

Button

保存图片文件

SaveImage

抓图

TabControl

两个页面分别为“基本操作”和“图层”

tabControl1

分为两个页面,“基本操作”和“图层”

  除了上述表所列出的属性需要设置,另外还要将TOCControl的Buddy属性设置为mSceneControl,其方法如下:

(1) 选中TOCControl控件,右击弹出菜单并选择“属性”。

(2) 弹出对话框,选择General页面,并找到Buddy复选框,选择mSceneControl。

   将控件的属性设置完毕之后,为三个Button控件添加Click事件,并添加以下处理代码:

      OpenSxdFile按钮控件的Click事件代码:

        /************************************************************************/

        /*                  "打开sxd文件"按钮按下事件                           */

        /************************************************************************/

        //打开sxd工程文件

        private void OpenSxdFile_Click(object sender, EventArgs e)

        {

            //文件过滤

            mOpenFileDialog.Filter = "sxd文件|*.sxd";

            //打开文件对话框打开事件

            if (mOpenFileDialog.ShowDialog() == DialogResult.OK)

            {

                //从打开对话框中得到打开文件的全路径,并将该路径传入到mSceneControl中

                mSceneControl.LoadSxFile(mOpenFileDialog.FileName);

            }

    }

      OpenRasterFile按钮控件的Click事件代码:

        /************************************************************************/

        /*                  "打开Raster文件"按钮按下事件                        */

        /************************************************************************/

        //向工程中添加栅格数据

        private void OpenRasterFile_Click(object sender, EventArgs e)

        {

            string sFileName = null;

            //新建栅格图层

            IRasterLayer pRasterLayer = null;

            pRasterLayer = new RasterLayerClass();

            //取消文件过滤

            mOpenFileDialog.Filter = "所有文件|*.*";

            //打开文件对话框打开事件

            if (mOpenFileDialog.ShowDialog() == DialogResult.OK)

            {

                //从打开对话框中得到打开文件的全路径

                sFileName = mOpenFileDialog.FileName;

                //创建栅格图层

                pRasterLayer.CreateFromFilePath(sFileName);

                //将图层加入到控件中

                mSceneControl.Scene.AddLayer(pRasterLayer,true);

                //将当前视点跳转到栅格图层

                ICamera pCamera = mSceneControl.Scene.SceneGraph.ActiveViewer.Camera;

                //得到范围

                IEnvelope pEenvelop = pRasterLayer.VisibleExtent;

                //添加z轴上的范围

                pEenvelop.ZMin = mSceneControl.Scene.Extent.ZMin;

                pEenvelop.ZMax = mSceneControl.Scene.Extent.ZMax;

                //设置相机

                pCamera.SetDefaultsMBB(pEenvelop);

                mSceneControl.Refresh();

            }

     }

    SaveImage按钮控件的Click事件代码:

        /************************************************************************/

        /*                  "保存图片文件"按钮按下事件                          */

        /************************************************************************/

        //抓图,将场景保存成图片文件

        private void SaveImage_Click(object sender, EventArgs e)

        {

            string sFileName = "";

            //保存对话框的标题

            mSaveFileDialog.Title = "保存图片";

            //保存对话框过滤器

            mSaveFileDialog.Filter = "BMP图片|*.bmp|JPG图片|*.jpg";

            //图片的高度和宽度

            int Width = mSceneControl.Width;

            int Height = mSceneControl.Height;

            if( mSaveFileDialog.ShowDialog() == DialogResult.OK)

            {

                sFileName = mSaveFileDialog.FileName;

                if(mSaveFileDialog.FilterIndex == 1)//保存成BMP格式的文件

                {

                    mSceneControl.SceneViewer.GetSnapshot(Width, Height, 

                        esri3DOutputImageType.BMP, sFileName);

                }

                else//保存成JPG格式的文件

                {

                    mSceneControl.SceneViewer.GetSnapshot(Width, Height,

                        esri3DOutputImageType.JPEG, sFileName);

                }

                MessageBox.Show("保存图片成功!

");

                mSceneControl.Refresh();

            }

     }

      有两种方法定制场景的浏览,第一种方法是利用arcgis的向导,定制常用的浏览方法,如漫游、放大、缩小等等,该方法简单,并且不需要编写代码,第二种方法是通过添加代码的方法更改场景的CurrentTool属性,从而实现场景浏览的功能,下面对以上两种方法一一介绍:

     第一种方法:

     第一步:

添加ToolbarControl控件,该控件位于“工具箱”中的“ArcGIS Windows Forms”选项中,把它的名字设置为 ”mToolbarControl”,将“Dock”属性设置为“Top”,并将其Buddy属性设置为mSceneControl,设置方法与mTOCControl控件相同。

   第二步:

进入“mToolbarControl”属性对话框中的“items”页面,并单击“Add…”按钮。

弹出Control Commands对话框,在Control Commands对话框中选中“Category”列表框中的“Scene”选项,在“Commands”列表中就会出现与“Scene”关联的命令,双击命令就可以将该命令加入到“mToolbarControl”工具条中。

    第二种方法:

   第一步,加入C#工具条(ToolStrip控件),并将其“Dock”属性设置为“Top”

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1