基于AE的基础的GIS系统的开发

虚幻大学 xuhss 441℃ 0评论

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475
一个GIS系统需要的基本功能的代码

a3ca6d3a65eb0e5489987fc997094520 - 基于AE的基础的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系统。

bd3672f35629ffe27b8a34c8f6588e07 - 基于AE的基础的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;

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

a9c3907229dda0daa52cb43650ecedd6 - 基于AE的基础的GIS系统的开发

扫码关注微信公众号

转载请注明:xuhss » 基于AE的基础的GIS系统的开发

喜欢 (0)

您必须 登录 才能发表评论!