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

0
分享 2012-07-03
获取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 = pGeometry asITopologicalOperator;
pNewGeometry = pTopologicalOperator.Intersect(pEnvelope, esriGeometryDimension.esriGeometry2Dimension);

4、获取最大和最小高程

IZCollection pZCollection = null;
pZCollection = pMultiPatch asIZCollection;

double zmax =pZCollection.ZMax;
double zmin =pZCollection.ZMin;
double high = zmax - zmin;
文章来源:http://blog.csdn.net/sydbc/article/details/17140205

0 个评论

要回复文章请先登录注册