using GeoScene.Data; using GeoScene.Engine; using GeoScene.Globe; namespace Cyberpipe { class GetpipeLineFields { public static string GetFields(string caption, GSOGlobeControl mGlobeControl) { GSOLayer mLayer = mGlobeControl.Globe.Layers.GetLayerByCaption(caption);//获取当前选择的layer图层 if (mLayer == null) return ""; GSODataset ds = mLayer.Dataset; GSOFeatureDataset sourcefDataset = ds as GSOFeatureDataset; if (sourcefDataset == null) return ""; sourcefDataset.Open(); string fields = ""; for (int j = 0; j < sourcefDataset.FieldCount; j++) { GSOFieldAttr fieldef = sourcefDataset.GetField(j); string fieldName = fieldef.Name; if (fieldName.Contains("高程") || fieldef.Name.Contains("埋深") || fieldef.Name.Contains("沟道宽") || fieldef.Name.Contains("沟道高") || fieldef.Name.Contains("间隙") || fieldef.Name.Contains("井深") || fieldef.Name.Contains("深度") || fieldef.Name.Contains("高度")) { fieldName = "round(" + fieldName + ",2) as " + fieldName + "_米"; } else if (fieldName.Contains("X坐标") || fieldName.Contains("Y坐标")) { fieldName = "round(" + fieldName + ",2) as " + fieldName; } if (j < sourcefDataset.FieldCount - 1) { fields += fieldName + ","; } else fields += fieldName; } return fields; } public static string GetFieldsForBubble(string caption, GSOGlobeControl mGlobeControl) { GSOLayer mLayer = mGlobeControl.Globe.Layers.GetLayerByCaption(caption); //获取当前选择的layer图层 if (mLayer == null) return ""; GSODataset ds = mLayer.Dataset; GSOFeatureDataset sourcefDataset = ds as GSOFeatureDataset; if (sourcefDataset == null) return ""; sourcefDataset.Open(); string fields = ""; for (int j = 0; j < sourcefDataset.FieldCount; j++) { GSOFieldAttr fieldef = sourcefDataset.GetField(j); string fieldName = fieldef.Name; if (j < sourcefDataset.FieldCount - 1) { fields += fieldName + ","; } else fields += fieldName; } return fields; } } }