代码改变世界

创建临时图层

2012-03-27 15:31  枫桥夜泊日  阅读(312)  评论(0编辑  收藏  举报

        /// <summary>
        /// 创建临时图层
        /// </summary>
        /// <param name="layerName">图层名</param>
        /// <param name="isSelectable">图层是否能被选中</param>
        /// <param name="lyr">图层对象</param>

public FeatureLayer CreateTempLayer(string layerName, bool isSelectable)
        {
            FeatureLayer lyr = null;
            TableInfoMemTable tblInfoTemp = new TableInfoMemTable(layerName);
            Table tblTemp = Session.Current.Catalog.GetTable(layerName);
            if (tblTemp == null)
            {
                tblInfoTemp.Columns.Add(ColumnFactory.CreateFeatureGeometryColumn(mapMainControl.Map.GetDisplayCoordSys()));
                tblInfoTemp.Columns.Add(ColumnFactory.CreateStyleColumn());
                tblInfoTemp.Columns.Add(ColumnFactory.CreateStringColumn("name", 40));
                tblInfoTemp.Columns.Add(ColumnFactory.CreateStringColumn("guid", 18));
                tblTemp = Session.Current.Catalog.CreateTable(tblInfoTemp);
                lyr = new FeatureLayer(tblTemp, layerName, layerName);

                LayerHelper.SetEditable(lyr, false);
                LayerHelper.SetSelectable(lyr, isSelectable);
                int i = mapMainControl.Map.Layers.Add(lyr);
                ToolFilter toolFilter =
                    (ToolFilter)mapMainControl.Tools.AddMapToolProperties.InsertionLayerFilter;
                if (toolFilter != null && !toolFilter.IncludeLayer(lyr))
                    toolFilter.SetExplicitInclude(lyr, true);
                toolFilter = (ToolFilter)mapMainControl.Tools.SelectMapToolProperties.EditableLayerFilter;
                if (toolFilter != null && !toolFilter.IncludeLayer(lyr))
                    toolFilter.SetExplicitInclude(lyr, true);
            }
            return lyr;
        }