/// <summary> /// 处理空间统计 /// </summary> /// <param name="mapControl"></param> /// <param name="pGeometry"></param> /// <param name="layerName"></param> public void DealFeatureQuery(AxMapControl mapControl, IGeometry pGeometry, string queryStr, string layerName) { IGroupLayer gLayer = null; if (string.IsNullOrEmpty(layerName)) { return; } int gIndex; int layerIndex; IFeatureLayer pFeatureLayer = LayerUtil.QueryLayerInMap(mapControl, layerName, ref gLayer, out layerIndex, out gIndex) as IFeatureLayer; if (pFeatureLayer == null) { return; } IQueryFilter queryFilter = null; IFeatureCursor pFeatureCursor = null; if (string.IsNullOrEmpty(queryStr)) { pFeatureCursor = FeatureDealUtil.QueryFeatureInLayer(pFeatureLayer, pGeometry, ref queryFilter); } else { pFeatureCursor = FeatureDealUtil.QueryFeatureInLayer(pFeatureLayer, queryStr, ref queryFilter); } IList <IFeature> features = FlashFeatureShape(mapControl, pFeatureLayer, pFeatureCursor); ShowFeatureDetail(pFeatureLayer, features, queryFilter); }
//刷新要素 在增加、删除字段后必须进行调用 public void RefreshFeaturesByFids() { var fids = new List <int>(); pfeatuers.ForEach(p => { var value = p.get_Value(p.Fields.FindField("FID")); fids.Add((int)value); }); pfeatuers = FeatureDealUtil.FindFeatures(layer, fids); }
private void dataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex > -1) { this.dataGridView.EndEdit(); var dRow = dataTable.Rows[e.RowIndex]; var pFeature = this.pfeatuers[e.RowIndex]; FeatureDealUtil.UpdateFeature(pFeature, dRow); } }
/// <summary> /// 更新valueslistBoxControl元素 /// </summary> /// <param name="field"></param> void UpdateFieldUniqueValueListbox(IField field) { this.valueslistBoxControl.Items.Clear(); IList <object> values = FeatureDealUtil.GetUnikeValues(selectLayer as IFeatureLayer, field.Name, 200); if (field.Type == esriFieldType.esriFieldTypeString) { foreach (var value in values) { this.valueslistBoxControl.Items.Add(String.Format("'{0}'", value)); } } else { foreach (var value in values) { this.valueslistBoxControl.Items.Add(value); } } this.valueslistBoxControl.SelectedIndex = -1; }
private void simpleButton1_Click(object sender, EventArgs e) { List <DataRow> rows; var deFeatures = GetIsGoingDeletedRows(out rows); if (rows.Count == 0) { MessageBox.Show("尚未选择任何行,无法删除"); return; } if (FeatureDealUtil.DeleteFeatures(deFeatures)) { rows.ForEach(row => { this.dataTable.Rows.Remove(row); }); deFeatures.ForEach(feature => this.pfeatuers.Remove(feature)); this.countLabel.Text = dataTable.Rows.Count.ToString(); } else { MessageBox.Show("删除错误"); } }