arcengine 怎么加载DEM数据呀 求C#代码

作者&投稿:芒豪 (若有异议请与网页底部的电邮联系)
arcengine 怎么加载DEM数据呀 求C#代码~

 方法一、通过遍历CAD数据集,依次加载中点线面注记等图层,所加载的数据均为一个独立的图层。
  IWorkspaceFactory pWorkspaceFactory;
  IFeatureWorkspace pFeatureWorkspace;
  IFeatureLayer pFeatureLayer;
  IFeatureDataset pFeatureDataset;
  //打开CAD数据集
  pWorkspaceFactory = new CadWorkspaceFactoryClass();
  pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(directoryPath, 0);
  //打开一个要素集
  pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(fileName);
  //IFeaturClassContainer可以管理IFeatureDataset中的每个要素类
  IFeatureClassContainer pFeatureClassContainer = (IFeatureClassContainer)pFeatureDataset;
  //对CAD文件中的要素进行遍历处理

IConversionOp.ToRasterDataset 方法可以将数据集转换为栅格图层 原型“: public IRasterDataset ToRasterDataset ( IGeoDataset dataset, string rasterFormat, IWorkspace pWorkspace, string name );

http://www.pudn.com/downloads295/sourcecode/graph/detail1322386.html
资源站上给你找了一段代码,这个肯定够你用的。

private void button1_Click(object sender, EventArgs e)
{
//dem数据一般读的是包含所有adf文件的文件夹的名称
OpenFileDialog openFile = new OpenFileDialog();
openFile.ShowDialog();
string path = openFile.FileName;
//判断后缀是否为adf,如果是则读取它路径的上一级作为文件名
string lastname = path.Substring(path.Length - 3, 3);
string frontname = null;//该字符串记录的事排除后缀为adf文件名的路径
if (lastname == "adf")
{
char[] split = new char[] { '\\' };
string[] array = path.Split(split);
string last = array[array.Length - 1];//XXX.adf
int n = last.Length + 1;
frontname = path.Substring(0, path.Length - n);
}
if (frontname != null)
{
ILayer pLayer = openDEMLayer(frontname);
this.axSceneControl1.Scene.AddLayer(pLayer, true);
}
}
public static ILayer openDEMLayer(string fullPath)
{
string pathToWorkspace = System.IO.Path.GetDirectoryName(fullPath);
string demName = System.IO.Path.GetFileName(fullPath);
IWorkspaceFactory pWSFact = new RasterWorkspaceFactoryClass();
IWorkspace pWS = pWSFact.OpenFromFile(pathToWorkspace, 0);
IRasterWorkspace pRasterWorkspace = pWS as IRasterWorkspace;
IRasterLayer pRasterLayer= new RasterLayerClass();
try
{
IRasterDataset pRasterDataset = (IRasterDataset)pRasterWorkspace.OpenRasterDataset(demName);
pRasterLayer.CreateFromDataset(pRasterDataset);

}
catch (Exception err)
{
MessageBox.Show(err.Message);

}
return pRasterLayer;
}
private void button2_Click(object sender, EventArgs e)
{
IRasterLayer pRasterLayer = new RasterLayerClass();
pRasterLayer = (IRasterLayer)axSceneControl1.Scene.get_Layer(1);//Raster图层
IRaster pRaster = pRasterLayer.Raster;
ISurfaceOp pSurfaceOp = new RasterSurfaceOpClass();
ILayer pLayer = axSceneControl1.Scene.get_Layer(0); //点图层
IFeatureLayer pFeatureLayer = (IFeatureLayer)pLayer;
IGeoDataset pObservers = (IGeoDataset)pFeatureLayer.FeatureClass;
IGeoDataset pGeoDataset = pSurfaceOp.Visibility((IGeoDataset)pRaster, pObservers, esriGeoAnalysisVisibilityEnum.esriGeoAnalysisVisibilityFrequency);
IRasterLayer pNewRasterLayer = new RasterLayerClass();
IRaster pNewRaster = new ESRI.ArcGIS.DataSourcesRaster.Raster();
pNewRaster = (IRaster)pGeoDataset;
pNewRasterLayer.CreateFromRaster(pNewRaster);
pNewRasterLayer.Name = "透视图";
axSceneControl1.Scene.AddLayer(pNewRasterLayer, false);
}
private void button3_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "shapefile文件(*.shp)|*.shp";
//获取或设置文件对话框显示的初始目录
//openFileDialog1.InitialDirectory = @"D:\Program Files\ArcGIS\Metadata\Data";
//获取或设置一个值,该值指示对话框是否允许选择多个文件
openFileDialog1.Multiselect = false;
// 运行具有指定所有者的通用对话框
DialogResult pDialogResult = openFileDialog1.ShowDialog();
//指定标识符以指示对话框的返回值
if (pDialogResult != DialogResult.OK)
return;
//获取或设置一个包含在文件对话框中选定的文件名的字符串
string pPath = openFileDialog1.FileName;
//返回指定路径字符串的目录信息
string pFolder = System.IO.Path.GetDirectoryName(pPath);
//返回指定路径字符串的文件名和扩展名
string pFileName = System.IO.Path.GetFileName(pPath);
IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory();
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(pFolder, 0);
IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
IFeatureClass pFC = pFeatureWorkspace.OpenFeatureClass(pFileName);
IFeatureLayer pFLayer = new FeatureLayerClass();
pFLayer.FeatureClass = pFC;
pFLayer.Name = pFC.AliasName;
ILayer pLayer = pFLayer as ILayer;
axSceneControl1.Scene.AddLayer(pLayer, true);
}

//加载DEM数据
private void button1_Click(object sender, EventArgs e)
{
ISceneGraph pSceneGraph = this.axSceneControl1.SceneGraph;
IScene pScene = pSceneGraph.Scene;
IRasterLayer pRasterLayer =new RasterLayerClass ();
ILayer pLayer ;

this.openFileDialog1.Title ="Raster layer";
this.openFileDialog1.DefaultExt =".TIF";
this.openFileDialog1.Filter ="(*.tif)|*.tif";
if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
string pPathName = this.openFileDialog1.FileName;
string pPath = pPathName.Substring(0, pPathName.LastIndexOf('\\'));
string fileName = pPathName.Substring(pPath.Length+1, pPathName.Length - pPath.Length-1);
IWorkspaceFactory pwsf = new RasterWorkspaceFactoryClass();
IRasterWorkspace pRasterWorkspace;
if (pwsf.IsWorkspace(pPath))
{
pRasterWorkspace = pwsf.OpenFromFile(pPath, 0) as IRasterWorkspace;
IRasterDataset pRasterDataset = pRasterWorkspace.OpenRasterDataset(fileName);
//pRasterDataset.OpenFromFile(pPath);
pRasterLayer.CreateFromDataset(pRasterDataset);
pLayer = pRasterLayer as ILayer;
pScene.AddLayer(pLayer, true);
//pScene.ExaggerationFactor = 6;
pSceneGraph.RefreshViewers();

}
}
}


绿春县17299245830: arcengine 怎么加载DEM数据呀 求C#代码 -
绪谦平能: http://www.pudn.com/downloads295/sourcecode/graph/detail1322386.html 资源站上给你找了一段代码,这个肯定够你用的. private void button1_Click(object sender, EventArgs e){//dem数据一般读的是包含所有adf文件的文件夹的名称...

绿春县17299245830: arcengine怎么加载三维数据,并能查询分析 我有adf数据 -
绪谦平能: 如果,你使用了 GP 工具,你就必须确保 安装该系统的机子 必须 安装 了 ArcGIS desktop,否则,使用GP开发的功能 就不能 实现. ,ceSjkn

绿春县17299245830: 如何在arcscene中进行三维建模 -
绪谦平能: 方法/步骤 1 首先打开ArcScene模块,如图1,同时在其中加载DEM数据.这块DEM从地理空间数据云上下载的,分辨率是30米. 2 现在这个DEM还是平面的,然后在右边图层名“ASTGTM_N37E109S.img”上右击,打开一个下拉菜单.点击“属性”,弹出一个“图层属

绿春县17299245830: arcgis如何打开img格式的dem图 -
绪谦平能: 打开arcmap,点击add,直接添加dem,arcgis完美支持envi.低版本在大于4g会出错

绿春县17299245830: 怎样利用ArcEngine提取栅格数据(DEM)的行数、列数,原点的坐标、单元的宽、高以及栅格的属性值? -
绪谦平能: 在图像的元数据里应该有这些信息,你下载的DEM文件带有元数据文件(正规的DEM都应该带有),是个txt,直接读取应该就可了

绿春县17299245830: 请教各位,我最近基于C#对ArcGIS Engine进行二次开发,在实现加载DEM操作时,出现下列问题: 如何解决?? -
绪谦平能: 在你的LiscenseControl里选择ArcInfo,扩展里选上3D. 前提是你安装了相应的liscense

绿春县17299245830: 请教下关于arcgis engine实现三维显示的问题. -
绪谦平能: 如果是AE的话,那么shp数据应该是等高线,你的目标是用等高线生成dem,在arcgis中应该是可以使用工具 3D Analyst——create TIN——create TIN form features 生成栅格图,再用 3D Analyst——convert——TIN to raster 转换一下生成GRID,...

绿春县17299245830: arcgis中怎么用等高线制作DEM -
绪谦平能: (1) 新建地图文档,加载【ArcGIS地形分析--TIN及DEM的生成,TIN的显示】经验教程中得到的DEM数据:TINGrid(2) 在【ArcToolbox】中,执行命令[3D Analyst工具]——[栅格表面]——[坡度]

绿春县17299245830: 反恐的DEM文件怎么播放,说的一定要具体一点. -
绪谦平能: 把你想看的dem文件放到你的\cstrike文件夹里,然后进入CS,在控制台中输入playdemo xxx回车,xxx代表你要播放的dem文件的名字.或者viewdemo xxx也可以,这个命令可以在看的时候控制播放速度,可以快进,倒退等等. 或者去cga下一个skplayer2,这个播放器可以协助你播放demo,而且没有版本限制.

绿春县17299245830: 在 ArcGis 中 怎么用 地形图 建立DEM,具体点 -
绪谦平能: 对地形图矢量就可以了,矢量完成赋高程值,转成节点数据,内插生成DEM 这样做的结果是精度很低. 加载arcgis工具模块Data Management Tool,打开Features模块下的feature verticel to points 生成节点数据.利用Kriging插值方法内插生成新的DEM数据.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网