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
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.