Newer
Older
GHFX_REFACTOR / getpipeLineFields.cs
wxn on 2 Nov 2016 3 KB 提交
using System;
using System.Collections.Generic;
using System.Text;
using GeoScene.Globe;
using GeoScene.Engine;
using GeoScene.Data;

namespace Cyberpipe
{
    class getpipeLineFields
    {
        
        public static string getFields(string caption, GSOGlobeControl m_globeControl)
        {
            GSODataset ds;
            GSOFeatureDataset sourcefDataset;
            GSOLayer m_layer = m_globeControl.Globe.Layers.GetLayerByCaption(caption);//获取当前选择的layer图层
            if (m_layer == null)
                return "";
            GSOFeatureLayer flayer = m_layer as GSOFeatureLayer;
            ds = m_layer.Dataset as GSODataset;
            sourcefDataset = ds as GSOFeatureDataset;
            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 get_Fields(string caption, GSOGlobeControl m_globeControl)
        {
            GSODataset ds;
            GSOFeatureDataset sourcefDataset;
            GSOLayer m_layer = m_globeControl.Globe.Layers.GetLayerByCaption(caption);//获取当前选择的layer图层
            if (m_layer == null)
                return "";
            GSOFeatureLayer flayer = m_layer as GSOFeatureLayer;
            ds = m_layer.Dataset as GSODataset;
            sourcefDataset = ds as GSOFeatureDataset;
            sourcefDataset.Open();
            string fields = "";
            for (int j = 0; j < sourcefDataset.FieldCount; j++)
            {
              
                GSOFieldAttr fieldef = sourcefDataset.GetField(j);
                if (j < sourcefDataset.FieldCount - 1)
                {
                    fields += fieldef.Name + ",";
                }
                else
                    fields += fieldef.Name;
                
                string fieldName = fieldef.Name;
               

                if (j < sourcefDataset.FieldCount - 1)
                {
                    fields += fieldName + ",";
                }
                else
                    fields += fieldName;

            }
            return fields;
        }


    }
}