C# +AE加载shp、栅格、地图文档数据
步骤:
1)创建工作空间工厂
2)打开shapefile工作空间
3)打开要素类
4)创建要素图层
5)关联图层和要素类
6)添加到地图空间
具体代码(后面数字为对应的步骤):
IWorkspaceFactorypWorkspaceFactory=new ShapefileWorkspaceFactory (); // 1
openFileDialog1.Filter="shaperfile(*.shp)|*.shp";
openFileDialog1.InitialDirectory=@"E:\test\文档和数据\Data";
openFileDialog1.Multiselect=false;
DialogResultpDialogResult=openFileDialog1.ShowDialog ();
if(pDialogResult !=DialogResult.OK)
return;
stringpPath=openFileDialog1 .FileName;
stringpFolder=Path.GetDirectoryName (pPath);
stringpFileName=Path.GetFileName(pPath);
IWorkspacepWorkspace=pWorkspaceFactory .OpenFromFile(pFolder ,0); // 2
IFeatureWorkspacepFeatureWorkspace =pWorkspace as IFeatureWorkspace ;
IFeatureClasspFC=pFeatureWorkspace .OpenFeatureClass (pFileName ); //3
IFeatureLayerpFLayer=new FeatureLayerClass (); // 4
pFLayer.FeatureClass =pFC;
pFLayer.Name =pFC.AliasName ; // 5
ILayerpLayer=pFLayer as ILayer ;
IMappMap=axMapControl1.Map ;
pMap.AddLayer(pLayer); // 6
axMapControl1.ActiveView .Refresh ();
-----------------------------------------------------------------------------------------------------------
//添加ArcGIS命名空间
usingESRI.ArcGIS.Carto;
usingESRI.ArcGIS.Geometry;
usingESRI.ArcGIS.Geodatabase;
usingESRI.ArcGIS.DataSourcesFile;
usingESRI.ArcGIS.DataSourcesRaster;
//存储打开文件的全路径
stringfullFilePath;
//设置OpenFileDialog的属性,使其能打开多种类型文件
OpenFileDialogopenFile = new OpenFileDialog();
openFile.Filter = "shape文件(*.shp)|*.shp|";
openFile.Filter +="栅格数据(*.jpg,*.bmp,*.tiff)|*.jpg;*.bmp;*.tiff|";
openFile.Filter +="地图文档(*.mxd,*.mxt,*.jmf)|*.mxd;*.mxt;*.jmf";
openFile.Title = "打开文件";
try
{
if (openFile.ShowDialog() == DialogResult.OK)
{
fullFilePath = openFile.FileName;
//获得文件路径
int index = fullFilePath.LastIndexOf("\\");
stringfilePath = fullFilePath.Substring(0, index);
//获得文件名称
stringfileNam = fullFilePath.Substring(index + 1);
//加载shape文件
if (openFile.FilterIndex == 1)
{
//打开工作空间工厂
IWorkspaceFactoryworkspcFac = new ShapefileWorkspaceFactory();
IFeatureWorkspacefeatureWorkspc;
IFeatureLayerfeatureLay = new FeatureLayerClass();
//打开路径
featureWorkspc = workspcFac.OpenFromFile(filePath, 0) as IFeatureWorkspace;
//打开类要素
featureLay.FeatureClass = featureWorkspc.OpenFeatureClass(fileNam);
//清空图层
axMapControl1.ClearLayers();
//添加图层
axMapControl1.AddLayer(featureLay);
axMapControl1.Refresh();
}
//加载栅格图像
else if (openFile.FilterIndex == 2)
{
IWorkspaceFactoryworkspcFac = new RasterWorkspaceFactory();
IRasterWorkspacerasterWorkspc;
IRasterDatasetrasterDatst = new RasterDatasetClass();
IRasterLayerrasterLay = new RasterLayerClass();
rasterWorkspc = workspcFac.OpenFromFile(filePath, 0) as IRasterWorkspace;
rasterDatst = rasterWorkspc.OpenRasterDataset(fileNam );
rasterLay.CreateFromDataset(rasterDatst);
axMapControl1.ClearLayers();
axMapControl1.AddLayer(rasterLay);
axMapControl1.Refresh();
}
//加载地图文档
本文档为【C# AE加载shp、栅格、地图文档数据】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。