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); } }
Les membres connectés peuvent publier, suivre les mises à jour, et plus encore. Nouveau ici ? Inscrivez-vous gratuitement.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.