private void ClickQuery() { DF3DApplication app = DF3DApplication.Application; if (app == null || app.Current3DMapControl == null) { return; } try { Guid guid = this._drawTool.GetSelectFeatureLayerPickResult().FeatureLayer.FeatureClassId; DF3DFeatureClass dffc = DF3DFeatureClassManager.Instance.GetFeatureClassByID(guid.ToString()); Dictionary <string, string> dict = null; if (dffc != null) { dict = GetQueryResult(dffc, this._drawTool.GetSelectFeatureLayerPickResult().FeatureId); } else { dict = GetQueryResult(this._drawTool.GetSelectFeatureLayerPickResult().FeatureLayer.FeatureClassInfo, this._drawTool.GetSelectFeatureLayerPickResult().FeatureId); } if (dict == null) { return; } #region ITableLabel tl = DrawTool.CreateTableLabel2(dict.Count); tl.TitleText = "属性查询"; int num = 0; foreach (KeyValuePair <string, string> kv in dict) { string k = kv.Key; string v = kv.Value; tl.SetRecord(num, 0, k); tl.SetRecord(num, 1, v); num++; } tl.Position = this._drawTool.GetSelectPoint(); _listTLs.Add(tl); #endregion } catch (Exception ex) { } }
private void AxRenderControl3D_RcMouseClickSelect(object sender, Gvitech.CityMaker.Controls._IRenderControlEvents_RcMouseClickSelectEvent e) { IFdeCursor cursor = null; IRowBuffer row = null; try { IPickResult pr = e.pickResult; if (pr.Type == gviObjectType.gviObjectFeatureLayer && pr is IFeatureLayerPickResult) { IFeatureLayerPickResult flpr = pr as IFeatureLayerPickResult; int oid = flpr.FeatureId; IFeatureLayer fl = flpr.FeatureLayer; if (this._dictFeatureClass.ContainsKey(fl.FeatureClassId)) { IFeatureClass fc = this._dictFeatureClass[fl.FeatureClassId]; if (fc == null) { return; } IQueryFilter filter = new QueryFilter(); filter.WhereClause = "oid = " + oid; cursor = fc.Search(filter, true); IFieldInfoCollection fiCol = fc.GetFields(); Dictionary <string, string> dict = new Dictionary <string, string>(); if ((row = cursor.NextRow()) != null) { for (int i = 0; i < fiCol.Count; i++) { IFieldInfo fi = fiCol.Get(i); object obj = row.GetValue(i); if (obj == null) { continue; } string str = ""; switch (fi.FieldType) { case gviFieldType.gviFieldBlob: case gviFieldType.gviFieldUnknown: case gviFieldType.gviFieldGeometry: break; case gviFieldType.gviFieldFloat: case gviFieldType.gviFieldDouble: double d; if (double.TryParse(obj.ToString(), out d)) { str = d.ToString("0.00"); } break; default: str = obj.ToString(); break; } if (!string.IsNullOrEmpty(str.Trim())) { string temp = fi.Name + "(" + fi.Alias + ")"; dict[temp] = str; } } } #region ITableLabel tl = DrawTool.CreateTableLabel2(dict.Count); tl.TitleText = "属性查询"; int num = 0; foreach (KeyValuePair <string, string> kv in dict) { string k = kv.Key; string v = kv.Value; tl.SetRecord(num, 0, k); tl.SetRecord(num, 1, v); num++; } tl.Position = e.intersectPoint; allTLGuid.Add(tl.Guid); #endregion } } } catch (Exception ex) { } }