获取Multipatch图层中模型的底面图形和模型的高度

来源:互联网 发布:数据的统计分析 编辑:程序博客网 时间:2024/05/29 00:31

获取Multipatch图层中模型的底面图形和模型的高度

 

1、获取Multipatch图层

 

IFeatureClass pFeatureClass =pFeatureWorkspace.OpenFeatureClass(layername);

 

2、获取模型数据要素

 

IFeatureCursor pFeatureCursor =pFeatureClass.Search(null,false);

 

3、获取模型要素并获取底面

(通过模型要素的Envelope和模型要素的Geometry进行相交操作)

IFeature pFeature =pFeatureCursor.NextFeature();

IGeometry pGeometry =null;

 

pGeometry = null;
pGeometry = pFeature.ShapeCopy;

pMultiPatch = pGeometry asIMultiPatch;

 

pEnvelope = null;

pEnvelope = pMultiPatch.Envelope;

 

pTopologicalOperator = null;

pTopologicalOperator = pGeometryasITopologicalOperator;

pNewGeometry = pTopologicalOperator.Intersect(pEnvelope,esriGeometryDimension.esriGeometry2Dimension);

 

4、获取最大和最小高程

 

IZCollection pZCollection =null;

pZCollection = pMultiPatchasIZCollection;

               

double zmax =pZCollection.ZMax;

double zmin =pZCollection.ZMin;

double high = zmax - zmin;

原创粉丝点击