您的位置:首页 > 其它

ArcEngine TIN 量算projected Area,Volume, surface Area

2012-04-17 15:16 295 查看
///<summary>
///将整个TIN作为计算对象,使用此方法
///</summary>
///<paramname="Tin">TinLayer</param>
///<paramname="planeheight">参考面高度</param>
publicvoidCalculateAreaVolumeISurface(ITinTin,doubleplaneheight)
{
ISurfacepSurface=TinasISurface;
doublevolume=pSurface.GetVolume(planeheight,esriPlaneReferenceType.esriPlaneReferenceAbove);
}


///<summary>
///从目录加载Tin
///Esri的TIN,是一个文件夹,下面包好8个名称固定的adf文件
///</summary>
///<paramname="folder">TinDataSet的父目录</param>
///<paramname="tinDataset">tinDataSet的名称</param>
///<returns></returns>
publicITinGetTinLayer(stringfolder,stringtinDataset)
{
IWorkspaceFactorypWSFact=newTinWorkspaceFactoryClass();
IWorkspacepWS=pWSFact.OpenFromFile(folder,0);
ITinWorkspacepTinWS=pWSasITinWorkspace;
ITinpTin=pTinWS.OpenTin(tinDataset);
returnpTin;
}


li_TinDataset=newList<string>{"tdenv.adf","tedg.adf","thul.adf","tmsk.adf","tmsx.adf","tnod.adf","tnxy.adf","tnz.adf"};

///<summary>

///检查是否是TINdataset

///</summary>

///<paramname="folderpath">用户选择的folder</param>

///<returns></returns>

publicboolCheckTinDataSet(stringfolderpath)

{

if(!Directory.Exists(folderpath))returnfalse;

DirectoryInfodi=newDirectoryInfo(folderpath);

FileInfo[]ar_fi=di.GetFiles("*.adf");

List<string>li_tem=newList<string>();

for(inti=0;i<=ar_fi.Length-1;i++)

{

li_tem.Add(ar_fi[i].Name);

}

intafirmed=0;

for(inti=0;i<=li_TinDataset.Count-1;i++)

{

if(li_tem.Contains(li_TinDataset[i]))afirmed++;

elsebreak;

}

if(afirmed==8)returntrue;

elsereturnfalse;

}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐