Thanks for your Reply....
I tired but it select only one feature. please send any sample code...
public static List<IFeature> SelectByGeometry(this IFeature feature, IFeatureLayer fc, double searchDist) {
IFeatureCursor curs = null;
List<IFeature> features = new List<IFeature>();
try {
SpatialFilter sf = new SpatialFilterClass();
sf.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
ITopologicalOperator top = (ITopologicalOperator)feature.ShapeCopy;
sf.Geometry = top.Buffer(Convert.ToDouble(searchDist));
curs = fc.Search(sf, false);
var boundFeat = curs.NextFeature();
while (boundFeat != null)
{
features.Add(boundFeat);
boundFeat = curs.NextFeature();
}
return features;
}
finally
{
if (curs != null) Marshal.ReleaseComObject(curs);
}
}
Thanks for your reply....
Your searching Single feature layer.. I need to find intersecting features(all layers features) around a point feature.
List<IFeatureLayer> myLayers = new List<IFeatureLayer>();
var layerUID = new UID();
layerUID.Value = "{40A9E885-5533-11D0-98BE-00805F7CED21}";
var eLayer = _ArcMap.Document.FocusMap.get_Layers(layerUID, true);
var layer = eLayer.Next();
while (layer != null)
{
var featureLayer = (IFeatureLayer)layer;
myLayers.Add(featureLayer);
layer = eLayer.Next();
}
List<IFeature> intersectedFeatures = null;
foreach(var featureLayer in myList)
{
intersectedFeatures.AddRange(myFeature.SelectByGeometry(featureLayer, 10)); // 10 is an arbitrary buffer size.. you would use whatever you want here
}
Thanks for your effect kyanuk1.
Ur searching layer level but its better feature level...
For example I am having 20 layers but point intersecting 2 or 3 layer ..so I need point intersecting objects