public static void LoadGeoData(AxMapControl axMapControl1, AxMapControl axMapControl2, string strFileN) { string strFExtenN = System.IO.Path.GetExtension(strFileN); switch (strFExtenN) { case ".shp": { string strPath = System.IO.Path.GetDirectoryName(strFileN); string strFile = System.IO.Path.GetFileNameWithoutExtension(strFileN); axMapControl1.AddShapeFile(strPath, strFile); axMapControl2.ClearLayers(); axMapControl2.AddShapeFile(strPath, strFile); axMapControl2.Extent = axMapControl2.FullExtent; break; } case ".bmp": case ".tif": case ".jpg": case ".img": { IWorkspaceFactory pWSF = new RasterWorkspaceFactoryClass(); string pathName = System.IO.Path.GetDirectoryName(strFileN); string fileName = System.IO.Path.GetFileName(strFileN); IWorkspace pWS = pWSF.OpenFromFile(pathName, 0); IRasterWorkspace pRWS = pWS as IRasterWorkspace; IRasterDataset pRasterDataSet = pRWS.OpenRasterDataset(fileName); IRasterPyramid pRasPyramid = pRasterDataSet as IRasterPyramid; if (pRasPyramid != null) { if (!(pRasPyramid.Present)) { pRasPyramid.Create(); } } IRaster pRaster = pRasterDataSet.CreateDefaultRaster(); IRasterLayer pRasterLayer = new RasterLayerClass(); pRasterLayer.CreateFromRaster(pRaster); ILayer pLayer = pRasterLayer as ILayer; axMapControl1.AddLayer(pLayer, 0); axMapControl2.ClearLayers(); axMapControl2.AddLayer(pLayer, 0); axMapControl2.Extent = axMapControl2.FullExtent; break; } case ".mxd": { if (axMapControl1.CheckMxFile(strFExtenN)) { axMapControl1.LoadMxFile(strFExtenN); } else MessageBox.Show("所选择的文件不是Mxd文件!", "提示信息"); break; } default: break; } }
//退出程序 public void ExitProgram(AxMapControl axMapControl1, AxTOCControl axTOCControl1) { DialogResult dialogResult = MessageBox.Show("保存文件?", "关闭文件", MessageBoxButtons.YesNoCancel); if (dialogResult == DialogResult.Yes) { SaveDocument(axMapControl1); mapDocument.Close(); axMapControl1.ClearLayers(); axMapControl1.Refresh(); axTOCControl1.Update(); Application.Exit(); } if (dialogResult == DialogResult.No) { //mapDocument.Close(); //axMapControl1.ClearLayers(); //axMapControl1.Refresh(); //axTOCControl1.Update(); Application.Exit(); } if (dialogResult == DialogResult.Cancel) { return; } }
/// <summary> /// 加载CAD文件 /// </summary> /// <param name="axMapControl">地图控件引用</param> /// <param name="strFilePath">文件路径</param> /// <returns>正常:“”,异常:异常字符;</returns> private SystemErrorType LoadCADFile(ref AxMapControl axMapControl, string strFilePath) { if (strFilePath == "") { return(SystemErrorType.enumFilePathIsNull); } try { //workspace声明 IWorkspaceFactory pCadWorkspaceFactory = null; IWorkspace pWorkspace = null; ICadDrawingWorkspace pCadDrawingWorkspace = null; ICadDrawingDataset pCadDataset = null; ICadLayer pCadLayer = null; //地图数据操作 pCadWorkspaceFactory = new CadWorkspaceFactoryClass(); pWorkspace = pCadWorkspaceFactory.OpenFromFile(strFilePath, 0); pCadDrawingWorkspace = pWorkspace as ICadDrawingWorkspace; pCadDataset = pCadDrawingWorkspace.OpenCadDrawingDataset(strFilePath); pCadLayer = new CadLayerClass(); pCadLayer.CadDrawingDataset = pCadDataset; //控件操作 axMapControl.ClearLayers(); axMapControl.AddLayer(pCadLayer, 0); axMapControl.Refresh(); } catch (Exception) { return(SystemErrorType.enumArcObjectHandleError); } return(SystemErrorType.enumOK); }
private string LoadMapFileInPreviewControl(string fileName) { string msg = string.Empty; if (File.Exists(fileName)) { string ext = Path.GetExtension(fileName).ToLower(); if (ext == ".mxd") { if (mapControl.CheckMxFile(fileName)) { try { mapControl.LoadMxFile(fileName); mapControl.Extent = mapControl.FullExtent; } catch (Exception ex) { msg = "ESRI Map Control generated an error.\nFile: " + fileName + "\nError: " + ex; } } else { msg = "Map document not valid: " + fileName; } } else if (ext == ".lyr") { try { mapControl.ClearLayers(); mapControl.SpatialReference = null; mapControl.AddLayerFromFile(fileName); mapControl.get_Layer(0).Visible = true; //Make sure the layer is visible //Set the Spatial Ref to match the current layer, not the previous layer. //mapControl.SpatialReference = mapControl.get_Layer(0).SpatialReference; mapControl.Extent = mapControl.FullExtent; } catch (Exception ex) { msg = "ESRI Map Control generated an error.\nFile: " + fileName + "\nError: " + ex; } } else { msg = "File must be a map document (.mxd) or a layer file (.lyr): " + fileName; } } else { msg = "File not found: " + fileName; } return(msg); }
public static void OpenMosaicDataset(AxMapControl MapControl, IMosaicDatasetName pMdName, ListView listview1) { MapControl.ClearLayers(); MapControl.SpatialReference = null; listview1.Items.Clear(); listview1.Columns.Clear(); IDatasetName pDsName = pMdName as IDatasetName; string sName = pDsName.Name; IName pName = pMdName as IName; IMosaicDataset pMds = pName.Open() as IMosaicDataset; IFeatureClass pFc = pMds.Catalog; listview1.Items.Clear(); listview1.Columns.Clear(); LoadListView(pFc, listview1); IFeatureCursor pCursor = pFc.Search(null, false); IFeature pfea = pCursor.NextFeature(); int j = 0; while (pfea != null) { ListViewItem lv = new ListViewItem(); for (int i = 0; i < pfea.Fields.FieldCount; i++) { string sFieldName = pfea.Fields.get_Field(i).Name; lv.SubItems.Add(FeatureHelper.GetFeatureValue(pfea, sFieldName).ToString()); } lv.Tag = pfea; if (j % 2 == 0) { lv.BackColor = System.Drawing.Color.GreenYellow; } listview1.Items.Add(lv); pfea = pCursor.NextFeature(); j++; } LSGISHelper.OtherHelper.ReleaseObject(pCursor); IMosaicLayer pML = new MosaicLayerClass(); pML.CreateFromMosaicDataset(pMds); MapControl.AddLayer(pML as ILayer); MapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); }
/// <summary> /// 加载Access文件 /// </summary> /// <param name="axMapControl">地图控件引用</param> /// <param name="strFilePath">文件路径</param> /// <returns>正常:“”,异常:异常字符;</returns> private SystemErrorType LoadAccessFile(ref AxMapControl axMapControl, string strFilePath) { if (strFilePath == "") { return(SystemErrorType.enumFilePathIsNull); } try { //声明区域,创建工作空间并遍历数据集 IWorkspaceFactory pAccessWorkspaceFactory = new AccessWorkspaceFactoryClass(); IFeatureWorkspace pFeatureWorkspace = null; IWorkspace pWorkspace = pAccessWorkspaceFactory.OpenFromFile(strFilePath, 0); IEnumDataset pEnumDataset = pWorkspace.get_Datasets(esriDatasetType.esriDTAny); pEnumDataset.Reset(); IDataset pDataset = pEnumDataset.Next(); //如果数据集是IFeatureDataset则遍历它下面的子集 if (pDataset is IFeatureDataset) { pFeatureWorkspace = pAccessWorkspaceFactory.OpenFromFile(strFilePath, 0) as IFeatureWorkspace; IFeatureDataset pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(pDataset.Name); IEnumDataset pEnumDataset1 = pFeatureDataset.Subsets; pEnumDataset1.Reset(); IDataset pDataset1 = pEnumDataset1.Next(); //如果子类是FeatureClass,则添加到地图控件中 if (pDataset1 is IFeatureClass) { IFeatureLayer pFeatureLayer = new FeatureLayerClass(); pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass(pDataset1.Name); pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName; axMapControl.ClearLayers(); axMapControl.Map.AddLayer(pFeatureLayer); axMapControl.ActiveView.Refresh(); } else { return(SystemErrorType.enumDataIsIllegal); } } else { return(SystemErrorType.enumDataIsIllegal); } } catch (Exception) { return(SystemErrorType.enumArcObjectHandleError); } return(SystemErrorType.enumOK); }
public static void AddLayersToEagleEye(AxMapControl axMapControl1,AxMapControl axMapControl2) { // 当主地图显示控件的地图更换时,鹰眼中的地图也跟随更换 axMapControl2.Map = new MapClass(); axMapControl2.ClearLayers(); // 添加主地图控件中的所有图层到鹰眼控件中 for (int i = axMapControl1.LayerCount - 1; i >= 0; i--) { axMapControl2.AddLayer(axMapControl1.get_Layer(i)); } // 设置 MapControl 显示范围至数据的全局范围 axMapControl2.Extent = axMapControl1.Extent; // 刷新鹰眼控件地图 axMapControl2.Refresh(); }
public static void AddLayersToEagleEye(AxMapControl axMapControl1, AxMapControl axMapControl2) { // 当主地图显示控件的地图更换时,鹰眼中的地图也跟随更换 axMapControl2.Map = new MapClass(); axMapControl2.ClearLayers(); // 添加主地图控件中的所有图层到鹰眼控件中 for (int i = axMapControl1.LayerCount - 1; i >= 0; i--) { axMapControl2.AddLayer(axMapControl1.get_Layer(i)); } // 设置 MapControl 显示范围至数据的全局范围 axMapControl2.Extent = axMapControl1.Extent; // 刷新鹰眼控件地图 axMapControl2.Refresh(); }
private void CloseFile() { cbxActiveMap.Items.Clear(); cbxFeatureLayer.Items.Clear(); cbxField.Items.Clear(); districtList.Items.Clear(); chkBoxLabel.IsChecked = false; labelClrPicker.SelectedColor = null; rbtnBarCht.IsChecked = false; rbtnPieCht.IsChecked = false; m_map.ClearLayers(); m_toc.Update(); m_toolbar.Update(); m_map.Refresh(); }
public static void OpenRasterDataset(AxMapControl MapControl, IRasterDatasetName pRdName, DataTable dt = null) { MapControl.ClearLayers(); MapControl.SpatialReference = null; dt.Rows.Clear(); dt.Columns.Clear(); IDatasetName pDsName = pRdName as IDatasetName; string sName = pDsName.Name; IName pName = pRdName as IName; IRasterDataset pRds = pName.Open() as IRasterDataset; IRasterLayer pRL = new RasterLayerClass(); pRL.CreateFromDataset(pRds); pRL.Name = sName; MapControl.AddLayer(pRL as ILayer); MapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); }
public static void OpenMosaicDataset(AxMapControl MapControl, IMosaicDatasetName pMdName, DataTable dt = null) { MapControl.ClearLayers(); MapControl.SpatialReference = null; IDatasetName pDsName = pMdName as IDatasetName; string sName = pDsName.Name; IName pName = pMdName as IName; IMosaicDataset pMds = pName.Open() as IMosaicDataset; if (null != dt) { IFeatureClass pFc = pMds.Catalog; InitDataTable(pFc, dt); IFeatureCursor pCursor = pFc.Search(null, false); IFeature pfea = pCursor.NextFeature(); int j = 0; while (pfea != null) { DataRow dataRow = dt.NewRow(); for (int i = 0; i < pfea.Fields.FieldCount; i++) { dataRow[i] = pfea.get_Value(i).ToString(); } dt.Rows.Add(dataRow); pfea = pCursor.NextFeature(); j++; } ComReleaser.ReleaseCOMObject(pCursor); } IMosaicLayer pML = new MosaicLayerClass(); pML.CreateFromMosaicDataset(pMds); MapControl.AddLayer(pML as ILayer); MapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); }
/// <summary> /// 加载Shape文件 /// </summary> /// <param name="axMapControl">地图控件引用</param> /// <param name="strFilePath">文件路径</param> /// <returns>正常:“”,异常:异常字符;</returns> private SystemErrorType LoadShapeFile(ref AxMapControl axMapControl, string strFilePath) { if (strFilePath == "") { return(SystemErrorType.enumFilePathIsNull); } try { IWorkspaceFactory pWorkSpaceFactory = null; IFeatureWorkspace pFeatureWorkspace = null; IFeatureClass pFeatureClass = null; IFeatureLayer pFeatureLayer = null; String WorkSpacePath = strFilePath.Substring(0, strFilePath.LastIndexOf('\\')); //取文件夹路径 string Layers = strFilePath.Substring(strFilePath.LastIndexOf('\\') + 1); //取文件名 //创建shape文件workspace,加载shape文件到地图控件 pWorkSpaceFactory = new ShapefileWorkspaceFactory() as IWorkspaceFactory; if (pWorkSpaceFactory.IsWorkspace(WorkSpacePath)) { pFeatureWorkspace = pWorkSpaceFactory.OpenFromFile(WorkSpacePath, 0) as IFeatureWorkspace; pFeatureClass = pFeatureWorkspace.OpenFeatureClass(Layers); pFeatureLayer = new FeatureLayer() as IFeatureLayer; pFeatureLayer.Name = Layers.Substring(0, Layers.Length - 4); pFeatureLayer.FeatureClass = pFeatureClass; axMapControl.ClearLayers(); axMapControl.AddLayer(pFeatureLayer); axMapControl.ActiveView.Refresh(); } else { return(SystemErrorType.enumDataIsIllegal); } } catch (Exception) { return(SystemErrorType.enumArcObjectHandleError); } return(SystemErrorType.enumOK); }
/// <summary> /// 加载栅格数据文件 /// </summary> /// <param name="axMapControl">地图控件引用</param> /// <param name="strFilePath">文件路径</param> /// <returns>正常:“”,异常:异常字符;</returns> private SystemErrorType LoadRasterFile(ref AxMapControl axMapControl, string strFilePath) { if (strFilePath == "") { return(SystemErrorType.enumFilePathIsNull); } try { IWorkspaceFactory pWorkspaceFactory = null; IRasterWorkspace pRasterWorkspace = null; IRasterDataset pRasterDataset = null; IRasterLayer pRasterLayer = null; String WorkspacePath = strFilePath.Substring(0, strFilePath.LastIndexOf('\\'));//e.g. c:/data/a.shp pWorkspaceFactory = new RasterWorkspaceFactoryClass() as IWorkspaceFactory; //如果符合要求 , 打开栅格数据文件并加载到地图控件中。 if (pWorkspaceFactory.IsWorkspace(WorkspacePath)) { pRasterWorkspace = pWorkspaceFactory.OpenFromFile(WorkspacePath, 0) as IRasterWorkspace; pRasterDataset = pRasterWorkspace.OpenRasterDataset(strFilePath.Substring(strFilePath.LastIndexOf('\\') + 1)); pRasterLayer = new RasterLayerClass() as IRasterLayer; pRasterLayer.CreateFromDataset(pRasterDataset); axMapControl.ClearLayers(); axMapControl.AddLayer(pRasterLayer); axMapControl.ActiveView.Refresh(); //axMapControl.Extent = axMapControl.FullExtent; } else { return(SystemErrorType.enumDataIsIllegal); } } catch (Exception) { return(SystemErrorType.enumArcObjectHandleError); } return(SystemErrorType.enumOK); }
public static void LoadGeoData(AxMapControl axMapControl1, AxMapControl axMapControl2, string strFileN) { string strFExtenN = System.IO.Path.GetExtension(strFileN); switch (strFExtenN) { case ".shp": { string strPath = System.IO.Path.GetDirectoryName(strFileN); string strFile = System.IO.Path.GetFileNameWithoutExtension(strFileN); axMapControl1.AddShapeFile(strPath, strFile); axMapControl2.ClearLayers(); axMapControl2.AddShapeFile(strPath, strFile); axMapControl2.Extent = axMapControl2.FullExtent; break; } case ".bmp": case ".tif": case ".jpg": case ".img": { IWorkspaceFactory pWSF = new RasterWorkspaceFactoryClass(); string pathName = System.IO.Path.GetDirectoryName(strFileN); string fileName = System.IO.Path.GetFileName(strFileN); IWorkspace pWS = pWSF.OpenFromFile(pathName, 0); IRasterWorkspace pRWS = pWS as IRasterWorkspace; IRasterDataset pRasterDataSet = pRWS.OpenRasterDataset(fileName); IRasterPyramid pRasPyramid = pRasterDataSet as IRasterPyramid; if (pRasPyramid != null) { if (!(pRasPyramid.Present)) { pRasPyramid.Create(); } } IRaster pRaster = pRasterDataSet.CreateDefaultRaster(); IRasterLayer pRasterLayer = new RasterLayerClass(); pRasterLayer.CreateFromRaster(pRaster); ILayer pLayer = pRasterLayer as ILayer; axMapControl1.AddLayer(pLayer, 0); axMapControl2.ClearLayers(); axMapControl2.AddLayer(pLayer, 0); axMapControl2.Extent = axMapControl2.FullExtent; break; } case ".mxd": { if (axMapControl1.CheckMxFile(strFExtenN)) { axMapControl1.LoadMxFile(strFExtenN); } else { MessageBox.Show("所选择的文件不是Mxd文件!", "提示信息"); } break; } default: break; } }
public static void OpenRasterDataset(AxMapControl MapControl, IRasterDatasetName pRdName, ListView listview1) { MapControl.ClearLayers(); MapControl.SpatialReference = null; listview1.Items.Clear(); listview1.Columns.Clear(); IDatasetName pDsName = pRdName as IDatasetName; string sName = pDsName.Name; IName pName = pRdName as IName; IRasterDataset pRds = pName.Open() as IRasterDataset; IRasterLayer pRL = new RasterLayerClass(); pRL.CreateFromDataset(pRds); pRL.Name = sName; MapControl.AddLayer(pRL as ILayer); MapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); }