標籤:style blog color io os ar for sp div
public IFeature GetFeatureOnMouseDown(IPoint point) { try { ILayer layer = Common.GetLayerByName(mMap, "地塊"); if (layer == null) { MessageBox.Show("請載入地塊圖層!", "提示"); return null; } //IFeatureLayer fLayer = layer as IFeatureLayer; //IFeatureSelection featureSelection = fLayer as IFeatureSelection; //featureSelection.Clear(); //if (featureSelection == null) //{ // return null; //} IFeatureLayer featureLayer = layer as IFeatureLayer; if (featureLayer == null) return null; IFeatureClass featureClass = featureLayer.FeatureClass; if (featureClass == null) return null; //IPoint point = axMapControl1.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(x, y); IGeometry geometry = point as IGeometry; double length = ConvertPixelsToMapUnits(axMapControl1.ActiveView, 4); ITopologicalOperator pTopo = geometry as ITopologicalOperator; IGeometry buffer = pTopo.Buffer(length); geometry = buffer.Envelope as IGeometry; ISpatialFilter spatialFilter = new SpatialFilterClass(); spatialFilter.Geometry = geometry; switch (featureClass.ShapeType) { case esriGeometryType.esriGeometryPoint: spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains; break; case esriGeometryType.esriGeometryPolygon: spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; break; case esriGeometryType.esriGeometryPolyline: spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelCrosses; break; } spatialFilter.GeometryField = featureClass.ShapeFieldName; IQueryFilter filter = spatialFilter as IQueryFilter; IFeatureCursor cursor = featureClass.Search(filter, false); IFeature pfeature = cursor.NextFeature(); if (pfeature != null) { return pfeature; //featureSelection.Add(pfeature); //pfeature = cursor.NextFeature(); } else { return null; } } catch { return null; } }
大家可以修改一下My Code,圖層改成你需要的圖層即可。也可以寫成類。只是寫成類的話,變數可能會多一點。
if (pfeature != null) { return pfeature; //featureSelection.Add(pfeature); //pfeature = cursor.NextFeature(); }
此處也可以將if改成while,如果選擇的是多個要素的話。將我注釋掉的代碼開啟即可選擇多個要素。
C# Arcgis Engine 獲得滑鼠按下位置的要素