基于AE平台,如何开发GIS系统?

更新于
2026-09-24 05:02:55
37阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计601个文字,预计阅读时间需要3分钟。

基于AE平台,如何开发GIS系统?

一个GIS系统需要的基本功能代码+一些基本的拖拽操作就不详细说明了,直接上代码吧。

1.打开.mxd文件+基本思路:判断mxd路径是否存在→打开mxd文件

pythonimport os

def open_mxd(filename): if os.path.exists(filename): string=Application.StartupPath + \\\\GIS系统 filename=string + filename os.startfile(filename) else: print(文件不存在)

一个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系统。

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

基于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;

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

扫码关注微信公众号

pygis,培养思维,分析实践

本文共计601个文字,预计阅读时间需要3分钟。

基于AE平台,如何开发GIS系统?

一个GIS系统需要的基本功能代码+一些基本的拖拽操作就不详细说明了,直接上代码吧。

1.打开.mxd文件+基本思路:判断mxd路径是否存在→打开mxd文件

pythonimport os

def open_mxd(filename): if os.path.exists(filename): string=Application.StartupPath + \\\\GIS系统 filename=string + filename os.startfile(filename) else: print(文件不存在)

一个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系统。

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

基于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;

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

扫码关注微信公众号

pygis,培养思维,分析实践