一个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;

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

扫码关注微信公众号

最新文章

  1. 提交留言HTML模板代码
  2. ACM 最少步数
  3. tomcat域名问题
  4. tarjan算法+缩点:求强连通分量 POJ 2186
  5. bug_ _java.lang.IllegalArgumentException: View not attached to window manager
  6. 教程-脚本之Python
  7. Mahout源码MeanShiftCanopyDriver分析之二MeanShiftCanopyMapper仿造
  8. PHP不使用任何内置函数实现字符串翻转
  9. Android调试工具之ADB
  10. setContentType与setCharacterEncoding的区别
  11. nginx 80 端口 部署多个Web
  12. Cmake用法
  13. php 删除空格 和 回车
  14. Zabbix Agent 源码编译安装
  15. CCNA学习与实验指南——第3章 以太网
  16. VIM中 文件的打开与保存
  17. linux上定时运行scrapy
  18. Alpha版本检测报告
  19. web_custom_request和web_submit_data
  20. python获取当天日期进行格式转换

热门文章

  1. Nodejs基于Express使用html模板
  2. java多线程编程(一)
  3. 通过安装HomeBrew来安装Python3
  4. 基于GDAL库,读取.nc文件(以海洋表温数据为例)C++版
  5. 2、Golang基础--包的使用、if-else语句、循环、switch语句、数组、切片、可变函数参数、map类型
  6. Solution -「SHOI2016」「洛谷 P4336」黑暗前的幻想乡
  7. XXE外部实体注入漏洞总结
  8. CentOS8 固定IP无法访问外网问题解决(ping: www.hao123.com: Name or service not known)
  9. 学逆向之web_local
  10. CSRF POST型