目录
添加shp数据:
private void 添加要素数据集ToolStripMenuItem_Click(object sender, EventArgs e)
{
System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog();
openFileDialog.InitialDirectory = "c:\\";
openFileDialog.Filter = "Shapefiles (*.shp)|*.shp";
openFileDialog.FilterIndex = 2;
openFileDialog.RestoreDirectory = true;
openFileDialog.Multiselect = false;
if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string shapefileLocation = openFileDialog.FileName;
if (shapefileLocation != "")
{
IWorkspaceFactory workspaceFactory = new ShapefileWorkspaceFactoryClass();
IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(shapefileLocation), 0);
IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(System.IO.Path.GetFileNameWithoutExtension(shapefileLocation));
IFeatureLayer featureLayer = new FeatureLayerClass();
featureLayer.FeatureClass = featureClass;
featureLayer.Name = featureClass.AliasName;
featureLayer.Visible = true;
IActiveView activeView = m_mapControl4.ActiveView;
activeView.FocusMap.AddLayer(featureLayer);
activeView.Extent = activeView.FullExtent;
activeView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
}
else
{
System.Windows.Forms.MessageBox.Show("No shapefile chosen", "No Choice #1",
System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Exclamation);
}
}
}
添加栅格数据:
private void 添加栅格数据ToolStripMenuItem_Click(object sender, EventArgs e)
{
string file, sfilepath, sfilename;
object missing = Type.Missing;
try
{
OpenFileDialog OpenFileDialog1 = new OpenFileDialog();
OpenFileDialog1.Title = "选择要添加的数据文件";
OpenFileDialog1.Filter = "图像数据(*.jpg,*.bmp,*.gif)|*.jpg;*.bmp;*.gif";
if (OpenFileDialog1.ShowDialog() == DialogResult.OK)
{
file = OpenFileDialog1.FileName;
sfilepath = file.Substring(0, file.LastIndexOf("\\"));
sfilename = file.Substring(file.LastIndexOf("\\") + 1, file.Length - file.LastIndexOf("\\") - 1);
IWorkspaceFactory WorkspaceFactory = new RasterWorkspaceFactoryClass();
IWorkspace Workspace = WorkspaceFactory.OpenFromFile(sfilepath, 0);
IRasterWorkspace RasterWorkspace = Workspace as IRasterWorkspace;
IRasterDataset RasterDataset = RasterWorkspace.OpenRasterDataset(sfilename);
IRaster Raster = RasterDataset.CreateDefaultRaster();
IRasterLayer RasterLayer = new RasterLayerClass();
RasterLayer.CreateFromRaster(Raster);
m_mapControl4.AddLayer(RasterLayer as ILayer, 0);
m_mapControl4.Refresh();
}
}
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
}
添加GDB数据:
private void 添加GDB数据ToolStripMenuItem_Click(object sender, EventArgs e)
{
IFeatureWorkspace pFeatureWorkspace;
IFeatureLayer pFeatureLayer;
IFeatureDataset pFeatureDataset;
FolderBrowserDialog addgdb = new FolderBrowserDialog();
addgdb.SelectedPath = "";
addgdb.ShowDialog();
IWorkspaceFactory pFileGDBWorkspaceFactory = new FileGDBWorkspaceFactory();
IWorkspace pWorkspace = pFileGDBWorkspaceFactory.OpenFromFile(addgdb.SelectedPath, 0);
IFeatureWorkspace pFeatWorkspace = pWorkspace as IFeatureWorkspace;
IEnumDataset pEnumDataset = pWorkspace.get_Datasets(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTAny);
pEnumDataset.Reset();
IDataset pDataset = pEnumDataset.Next();
if (pDataset is IFeatureDataset)
{
pFeatureWorkspace = (IFeatureWorkspace)pFileGDBWorkspaceFactory.OpenFromFile(addgdb.SelectedPath, 0);
pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(pDataset.Name);
IEnumDataset pEnumDataset1 = pFeatureDataset.Subsets;
pEnumDataset1.Reset();
IDataset pDataset1 = pEnumDataset1.Next();
try
{
if (pDataset1 is IFeatureClass)
{
pFeatureLayer = new FeatureLayerClass();
pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass(pDataset1.Name);
pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
IActiveView activeView = m_mapControl4.ActiveView;
activeView.FocusMap.AddLayer(pFeatureLayer);
activeView.Extent = activeView.FullExtent;
activeView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
}
}
catch (Exception ex) { return; }
}
addgdb.Dispose();
}