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
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 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); } }
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.