Tengo la tarea de obtener el área total de todas las características poligonales dentro de un límite. Así que obtuve la envoltura del límite e hice una consulta espacial para obtener las características dentro de ese elemento
pero mi problema es que soy capaz de conseguir los elementos que se superponen a la envolvente pero no exactamente dentro de ella.. mi código es el siguiente
IMxDocument mxDoc = (IMxDocument)GetMxDocumentFromArcMap(m_application);
IEnvelope gridEnvelope = GetGridExtents("Z29");
IFeatureClass featureClass = GetFeatureClassFromShapefileOnDisk("D:\\Projects\\Working\\BMRDA\\data", "Hoskote_Satellite_Polygon");
// Create the spatial filter and set its spatial constraints.
ISpatialFilter spatialFilter = new SpatialFilterClass();
spatialFilter.Geometry = gridEnvelope.Envelope;
spatialFilter.GeometryField = featureClass.ShapeFieldName;
spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelWithin;
spatialFilter.set_OutputSpatialReference(featureClass.ShapeFieldName, mxDoc.FocusMap.SpatialReference);
// Set the attribute constraints and subfields.
// We want to exclude ramps, highways and interstates.
spatialFilter.WhereClause = "LEVEL3 = 'AGRICULTURE LAND'";
// Execute the query.
IFeatureCursor featureCursor = featureClass.Search(spatialFilter, true);
ESRI.ArcGIS.Geodatabase.IFeature feature; // Automatically initialized to null. Used to test existence of a feature in the featureCursor
double dbArea = 0.0;
int intCount = 0;
while ((feature = featureCursor.NextFeature()) != null)
{
IArea area = (IArea)feature.Shape;
dbArea = dbArea + area.Area;
intCount++;
}
el spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelWithin; no funciona me devuelve null quiero que el polígono sea recortado y obtener el área del mismo ¿Se me escapa algo? Por favor, guíenme