计算图层面积(针对于面要素)ArcObject c++

double getAreas() //得到图层面积
{
IFeatureClassPtr ipFeatureClass = getFeatureClass();
IFeatureCursorPtr ipFeatureCursor;
ipFeatureClass->Search(nullptr, VARIANT_TRUE, &ipFeatureCursor);
IFeaturePtr ipFeature;
ipFeatureCursor->NextFeature(&ipFeature);
IGeometryPtr ipGeometry;
esriGeometryType type;
double layerArea = 0;
double shapeArea = 0;
while (ipFeature!=nullptr)
{
	ipFeature->get_Shape(&ipGeometry);
	ipGeometry->get_GeometryType(&type);
	if (type == esriGeometryPolygon)
	{
		IAreaPtr ipArea = ipGeometry;
		ipArea->get_Area(&shapeArea);
		layerArea = layerArea + shapeArea;
	}
	ipFeatureCursor->NextFeature(&ipFeature);
}
return layerArea;
}

 

转载自:https://blog.csdn.net/Giser_D/article/details/82422981

You may also like...