一个GIS系统需要的基本功能的代码

一些基本的拖拽操作就不讲了,直接上代码吧。

 

1、 打开.mxd文件

基本思路:判断mxd路径存在→打开mxd文件

string filename = Application.StartupPath + "\\GIS系统.mxd";

if (axMapControl1.CheckMxFile(filename))

{

    axTOCControl1.SetBuddyControl(axMapControl1); //设置TOC与MapControl绑定

    axMapControl1.LoadMxFile(filename); //加载mxd文件

}

2、添加Shp(打开文件方式)

基本思路:打开文件→判断shp→添加shp→刷新地图

                OpenFileDialog pOpenFileDialog = new OpenFileDialog();

                pOpenFileDialog.CheckFileExists = true;

                pOpenFileDialog.Title = "导入文件";

                pOpenFileDialog.Filter = "Shape文件(*.shp)|*.shp|个人地理数据库(*.mdb)|*.mdb";

                pOpenFileDialog.ShowDialog();

                ////获取文件路径

                //FileInfo pFileInfo = new FileInfo(pOpenFileDialog.FileName);

                //string pPath = pOpenFileDialog.FileName.Substring(0, pOpenFileDialog.FileName.Length - pFileInfo.Name.Length);

                //mainMapControl.AddShapeFile(pPath, pFileInfo.Name);

                IWorkspaceFactory pWorkspaceFactory;

                IFeatureWorkspace pFeatureWorkspace;

                IFeatureLayer pFeatureLayer;

                string pFullPath = pOpenFileDialog.FileName;

                if (pFullPath == "") return;

                int pIndex = pFullPath.LastIndexOf("\\");

                string pFilePath = pFullPath.Substring(0, pIndex); //文件路径

                string pFileName = pFullPath.Substring(pIndex + 1); //文件名

                string pLastName = pFileName.Substring(pFileName.Length - 3);

                if (pLastName == "shp")

                {

                    //实例化ShapefileWorkspaceFactory工作空间,打开Shape文件

                    pWorkspaceFactory = new ShapefileWorkspaceFactory();

                    pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(pFilePath, 0);

                    //创建并实例化要素集

                    IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass(pFileName);

                    pFeatureLayer = new FeatureLayer();

                    pFeatureLayer.FeatureClass = pFeatureClass;

                    pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;

                    //ClearAllData();    //新增删除数据

                    axMapControl1.Map.AddLayer(pFeatureLayer);

                    axMapControl1.ActiveView.Refresh();

                }

3、退出系统

基本思路:关闭窗口→释放资源→关闭系统

   this.Close();

            //if (mExitOperate == -1) //取消关闭

            //    return;

            //else

            //{

            //    Process.GetCurrentProcess().Kill();

            //    System.Environment.Exit(0);

            //}

            Process.GetCurrentProcess().Kill();

            System.Environment.Exit(0);

这三个基本功能可以满足一个基础的浏览数据的GIS系统。

说明:后文中可能会出现一些并未声明的变量,极有可能为全局变量,程序中的全局变量如下:

        //图层右键

        private ILayer m_Layer;

        private ILayer pMoveLayer;

        private int toIndex;

        private System.Drawing.Point pMoveLayerPoint;

        IFeatureLayer pTocFeatureLayer = null;

        private string sMapUnits = "";       

//指北针

        private INorthArrow m_NorthArrrow;

        private IElement pElement;

        private string operation;

若有任何问题,欢迎留言!

扫码关注微信公众号

基于AE的基础的GIS系统的开发的更多相关文章

  1. 基于SSH框架的网上书店系统开发的质量属性

    基于SSH框架的网上书店系统开发的质量属性 对于我的基于SSH框架的网上书店系统的开发要实现的质量属性有可用性.可修改性.性能.安全性.易用性和可测试性. 1.对于可用性方面的战术: 可用性(Avai ...

  2. VC、OpenGL、ArcGIS Engine开发的二维三维结合的GIS系统

    一.前言 众所周知,二维GIS技术发展了近四十年,伴随着计算机软硬件以及关系型数据库的飞速发展,二维GIS技术已日臻完善.在对地理信息的分析功能上有着无可比拟的优势.一些宏观的地理信息,一维的地理信息 ...

  3. Java开源GIS系统

     uDig  基于Eclipse RCP的uDig开源项目既是一个GeoSpatial应用程序也是一个平台开发者可通过这个平台来创建新的在uDig基础上衍生的应用程序,uDig是Web地理信息系统的一 ...

  4. IT基础架构规划方案三(IT基础软件和系统规划)

    IT基础软件和系统规划 操作系统选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选型规划,根据不同的 ...

  5. 基于Flume的美团日志收集系统(二)改进和优化

    在<基于Flume的美团日志收集系统(一)架构和设计>中,我们详述了基于Flume的美团日志收集系统的架构设计,以及为什么做这样的设计.在本节中,我们将会讲述在实际部署和使用过程中遇到的问 ...

  6. [转] GIS二次开发(C#+AE)

    乘风莫邪 原文GIS二次开发(C#+AE) 此过程描述了使用ArcGIS控件建立和部署应用的方法和步骤. 你可以在下面的目录下找到相应的样例程序: <</FONT>安装目录>/ ...

  7. 基于raw os 的事件触发系统

    Raw os的事件触发系统有以下特点: 1 基于UML的状态机理念设计,实现了有限状态机(fsm)以及层次状态机(HSM). 2 实现了活动对象(ACTIVE OBJECT)的特性,一个活动对象包含了 ...

  8. 基于三星ARM9(S3C2410)的交通违章抓拍系统的开发

    ARM9的交通违章抓拍系统的开发   ARM9的交通违章抓拍系统的开发 智能交通系统(ITS)将先进的信息技术.数据通讯传输技术.电子控制技术.计算机处理技术等应用于交通运输行业,从而实现各种运输方式 ...

  9. arcgis,mapinfo(mapxtreme),openlayers专业GIS系统开发

    专业从事基于C#,WinForm ,WPF,Silverlight,WCF以及MS Sql Server 2000/2005/2008/2012 Oracle 9i/10g/11g数据库系统的ERP, ...

随机推荐

  1. 如何添加自己的code snippet

    好了我们开始说吧 1.先建一个后缀名为.sublime-snippet的文件

  2. shell中的括号(小括号,大括号/花括号)

    在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: 1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:+string ...

  3. Java8 Stream 的一些操作和介绍

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11858186.html Java8 Stream 是一个新的东西, 就是能够将常见的数据结构转 ...

  4. Fastjson的JSONObject.toJSON()解析复杂对象发生内存泄漏问题

    这可能是fastjson的一个bug,我使用最新版依然存在该问题. 在用做报表功能的时候,发现一旦单元格过多,大概有80-100个单元格,就会发生程序假死,CPU持续占用超过90%,内存持续占用超90 ...

  5. 清理缓存的方法 #DF

    移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebImage. 但是,离线缓存会占用手机存储空间,所以缓存清理功能基本成为资讯.购物.阅读类 ...

  6. 如何将VSCode配置上传到gitee账户,简单几步教你实现

    众所周知,VSCode是一款功能非常强大的代码编写软件,不仅开源免费,其插件商店也是非常广泛.非常之强大.借助这些插件我们可以配置各种语言环境,也可以运行各种代码. 但随之就有问题出现了,我们在更换设 ...

  7. python内置模块之re模块

    内容概要 re模块常用方法 findall search match re模块其他方法 split sub subn compile finditer findall 对无名分组优先展示 re实战之爬 ...

  8. Solution -「洛谷 P4194」矩阵

    \(\mathcal{Description}\)   Link.   给定一个 \(n\times m\) 的矩阵 \(A\),构造一个 \(n\times m\) 的矩阵 \(B\),s.t. \ ...

  9. UVM中重要函数

    1.get_full_name() 获取这个节点的完整层次,这函数在object中就有定义,但是在component类中进行了重载,实现输出从uvm_test_top到当前节点的路径(是通过执行m_s ...

  10. 针对Office宏病毒的高级检测

    前言 攻击者可能发送带有恶意附件的钓鱼邮件,诱导受害者点击从而获取对方的系统控制权限 期间会借助 Atomic 工具完成攻击复现,再对具体的过程细节进行分析取证,然后深入研究.剖析其行为特征 最后输出 ...