Newer
Older
GHFX_REFACTOR / FeatureTools.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GeoScene.Data;
using GeoScene.Globe;

namespace Cyberpipe
{
    class FeatureTools
    {
        /// <summary>
        /// 清除地球上所有高亮的要素
        /// </summary>
        /// <param name="glb"></param>
        public static void ClearAllFeatureHighLight(GSOGlobeControl glb)
        {
            for (int i = 0; i < glb.Globe.Layers.Count; i++)
            {
                GSOLayer layer = glb.Globe.Layers[i];
                if (!(layer is GSOFeatureLayer)) continue;
                GSOFeatures feats = layer.GetAllFeatures();
                for (int j = 0; j < feats.Length; j++)
                {
                    feats[j].HighLight = false;
                }
            }
        }

        public static bool DeleteFeature(GSOFeature feature)
        {
            try
            {
                string layerName = feature.Dataset.Caption;

                //编号为空,为了限制删除的仅是用户自己添加的feature
                string bh = feature.GetFieldAsString("编号");
                if (bh!= null&&!bh.Trim().Equals(""))
                {
                    MessageBox.Show("非自定义创建要素,不可删除");
                    return false;
                }
                feature.Delete();//地球上删除该feature
                string sql = "delete from " + layerName + " where 编码 =" + feature.GetFieldAsString("编码") + " and 编号 is null";
                OledbHelper.sqlExecuteNonQuery(sql);//目前无法取到LSSYS_ID,所以这个判断条件不太合适,会导致把该类所有新建的都删除了
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }

    }
}