public static bool IdentifyMap(IBasicMap ibasicMap_0, IPoint ipoint_0, double double_0, ILayer ilayer_1, IdentifyTypeEnum identifyTypeEnum_1, IList <string> ilist_0, out IList <object> ilist_1) { bool flag; ilist_1 = new List <object>(); IEnvelope envelope = ipoint_0.Envelope; envelope.Width = double_0; envelope.Height = double_0; envelope.CenterAt(ipoint_0); if ((ilayer_1 == null ? true : identifyTypeEnum_1 != IdentifyTypeEnum.enumITCurrentLayer)) { UID uIDClass = new UID() { Value = "{6CA416B1-E160-11D2-9F4E-00C04F6BC78E}" }; IEnumLayer layers = ibasicMap_0.Layers[uIDClass, true]; ISpatialFilter spatialFilterClass = new SpatialFilter() { Geometry = envelope, SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects }; layers.Reset(); ILayer layer = layers.Next(); bool flag1 = false; while (layer != null) { if (ilist_0.IndexOf(layer.Name) != -1) { if (identifyTypeEnum_1 == IdentifyTypeEnum.enumITSelectableLayer) { if (!(layer is IFeatureLayer)) { layer = layers.Next(); continue; } else if (!(layer as IFeatureLayer).Selectable) { layer = layers.Next(); continue; } } else if (identifyTypeEnum_1 == IdentifyTypeEnum.enumITTopLayer) { flag1 = true; } else if (identifyTypeEnum_1 == IdentifyTypeEnum.enumITVisibleLayer) { if (!layer.Visible) { layer = layers.Next(); continue; } } try { IdentifyHelper.IdentifyLayer(ibasicMap_0, layer, envelope, ilist_1); } catch (Exception exception) { Logger.Current.Error("", exception, ""); } if (flag1) { break; } layer = layers.Next(); } else { layers.Next(); } } flag = true; } else { flag = IdentifyHelper.IdentifyLayer(ibasicMap_0, ilayer_1, envelope, ilist_1); } return(flag); }
public static bool EditIdentifyMap(IBasicMap ibasicMap_0, IPoint ipoint_0, double double_0, ILayer ilayer_1, IdentifyTypeEnum identifyTypeEnum_1, out IArray iarray_0) { bool flag; iarray_0 = new ESRI.ArcGIS.esriSystem.Array(); IEnvelope envelope = ipoint_0.Envelope; envelope.Width = double_0; envelope.Height = double_0; envelope.CenterAt(ipoint_0); if ((ilayer_1 == null ? true : identifyTypeEnum_1 != IdentifyTypeEnum.enumITCurrentLayer)) { UID uIDClass = new UID() { Value = "{6CA416B1-E160-11D2-9F4E-00C04F6BC78E}" }; IEnumLayer layers = ibasicMap_0.Layers[uIDClass, true]; ISpatialFilter spatialFilterClass = new SpatialFilter() { Geometry = envelope, SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects }; layers.Reset(); ILayer layer = layers.Next(); bool flag1 = false; while (layer != null) { if (layer is IFeatureLayer) { IFeatureLayer featureLayer = layer as IFeatureLayer; if (!(featureLayer.FeatureClass == null ? false : featureLayer.Visible)) { layer = layers.Next(); } else if (((featureLayer.FeatureClass as IDataset).Workspace as IWorkspaceEdit).IsBeingEdited()) { if (identifyTypeEnum_1 == IdentifyTypeEnum.enumITSelectableLayer) { if (!(layer as IFeatureLayer).Selectable) { layer = layers.Next(); continue; } } else if (identifyTypeEnum_1 == IdentifyTypeEnum.enumITTopLayer) { flag1 = true; } try { IdentifyHelper.IdentifyLayer(ibasicMap_0, layer, envelope, iarray_0); } catch (Exception exception) { Logger.Current.Error("", exception, ""); } if (flag1) { break; } layer = layers.Next(); } else { layer = layers.Next(); } } else { layer = layers.Next(); } } flag = true; } else { flag = IdentifyHelper.IdentifyLayer(ibasicMap_0, ilayer_1, envelope, iarray_0); } return(flag); }