计算图层面积(针对于面要素)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