arcgis中图层加载

using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.Text;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.DataSourcesFile;
using ESRI.ArcGIS.DataSourcesGDB;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.DataSourcesRaster;

namespace Book
{
    public class MapLoad
    {
        private IMap pMap = null;

        public IMap Map
        {
            set
            {
                pMap = value;
            }
        }

        /// <summary>
        /// 添加Shape文件
        /// </summary>
        /// <param name="ShapeFilePath">Shape文件所在的目录</param>
        /// <param name="ShapeFileName">Shape文件名城,不要后缀,不要目录</param>
        public void LoadShapeFile(string ShapeFilePath, string ShapeFileName)
        {
            Debug.Assert(pMap != null, "Map is null");
            IWorkspaceFactory pWorkFactory = new ShapefileWorkspaceFactoryClass();
            IPropertySet pSet = new PropertySetClass();
            pSet.SetProperty("DATABASE", ShapeFilePath);
            IWorkspace pWorkSpace = pWorkFactory.Open(pSet, 0);
            IFeatureWorkspace pFeatWorkSpace = pWorkSpace as IFeatureWorkspace;
            IFeatureClass pFeatClass = pFeatWorkSpace.OpenFeatureClass(ShapeFileName);

            ILayer pLayer = new FeatureLayerClass();
            (pLayer as IFeatureLayer).FeatureClass = pFeatClass;
            pMap.AddLayer(pLayer);
        }
        /// <summary>
        /// 装载Access数据库数据
        /// </summary>
        /// <param name="AccessFileName">Access数据库文件名称</param>
        /// <param name="FeatClassName">需要装载的图层名称</param>
        public void LoadAccessLayer(string AccessFileName, string FeatClassName)
        {
            Debug.Assert(pMap != null, "Map is null");
            IWorkspaceFactory pWorkFactory = new AccessWorkspaceFactoryClass();
            IPropertySet pSet = new PropertySetClass();
            pSet.SetProperty("DATABASE", AccessFileName);
            IWorkspace pWorkSpace = pWorkFactory.Open(pSet, 0);
            IFeatureWorkspace pFeatWorkSpace = pWorkSpace as IFeatureWorkspace;
            IFeatureClass pFeatClass = pFeatWorkSpace.OpenFeatureClass(FeatClassName);

            ILayer pLayer = new FeatureLayerClass();
            (pLayer as IFeatureLayer).FeatureClass = pFeatClass;
            pMap.AddLayer(pLayer);
        }
        /// <summary>
        /// 装载Coverage数据
        /// </summary>
        /// <param name="CoverageFilePath">Coverage数据所在的目录名称</param>
        /// <param name="FeatClassName">Coverage图层名称,不包含后缀</param>
        public void LoadCoverageLayer(string CoverageFilePath, string FeatClassName)
        {
            Debug.Assert(pMap != null, "Map is null");
            IWorkspaceFactory pWorkFactory = new ArcInfoWorkspaceFactoryClass();
            IPropertySet pSet = new PropertySetClass();
            pSet.SetProperty("DATABASE", CoverageFilePath);
            IWorkspace pWorkSpace = pWorkFactory.Open(pSet, 0);
            IFeatureWorkspace pFeatWorkSpace = pWorkSpace as IFeatureWorkspace;
            IFeatureClass pFeatClass = pFeatWorkSpace.OpenFeatureClass(FeatClassName);

            ILayer pLayer = new FeatureLayerClass();
            (pLayer as IFeatureLayer).FeatureClass = pFeatClass;
            pMap.AddLayer(pLayer);
        }
        /// <summary>
        /// 装载图片文件
        /// </summary>
        /// <param name="ImageFilePath">图片所在的目录名称</param>
        /// <param name="ImageFileName">图片文件名称</param>
        public void LoadImageLayer(string ImageFilePath, string ImageFileName)
        {
            Debug.Assert(pMap != null, "Map is null");
            IWorkspaceFactory pWorkFactory = new RasterWorkspaceFactoryClass();
            IPropertySet pSet = new PropertySetClass();
            pSet.SetProperty("DATABASE", ImageFilePath);
            IRasterWorkspace rasterWorkspace = pWorkFactory.Open(pSet, 0) as IRasterWorkspace;
            IRasterDataset rasterDS = rasterWorkspace.OpenRasterDataset(ImageFileName);
            ILayer pLayer = new RasterLayerClass();

            (pLayer as IRasterLayer).CreateFromDataset(rasterDS);
            pMap.AddLayer(pLayer);
        }
        /// <summary>
        /// 装载SDE图层
        /// </summary>
        /// <param name="ServerName">服务器名称</param>
        /// <param name="InstanceName">SDE实例名称</param>
        /// <param name="DbName">数据库名称</param>
        /// <param name="UserName">用户名称</param>
        /// <param name="Password">用户口令</param>
        /// <param name="SdeVersion">SDE版本</param>
        /// <param name="FeatClassName">需要装载的FeatuerClass的名称</param>
        /// <param name="Filter">图层过滤条件</param>
        public void LoadSDELayer(string ServerName, string InstanceName, string DbName,
                    string UserName,  string Password,string SdeVersion,
                    string FeatClassName,string Filter)
        {
            Debug.Assert(pMap != null, "Map is null");
            IPropertySet pSet = new PropertySetClass();
            pSet.SetProperty("Server", ServerName);
            pSet.SetProperty("Instance", InstanceName);
            pSet.SetProperty("Database", DbName);
            pSet.SetProperty("user", UserName);
            pSet.SetProperty("password", Password);
            pSet.SetProperty("version", SdeVersion);
            LoadSDELayer(pSet, FeatClassName,Filter);
        }
        public void LoadSDELayer(IPropertySet pSet, string FeatClassName, string Filter)
        {
            Debug.Assert(pMap != null, "Map is null");
            IWorkspaceFactory pWorkFactory = new SdeWorkspaceFactoryClass();
            
            IWorkspace pWorkSpace = pWorkFactory.Open(pSet, 0);
            IFeatureWorkspace pFeatWorkSpace = pWorkSpace as IFeatureWorkspace;
            IFeatureClass pFeatClass = pFeatWorkSpace.OpenFeatureClass(FeatClassName);

            ILayer pLayer = new FeatureLayerClass();
            (pLayer as IFeatureLayer).FeatureClass = pFeatClass;
            IFeatureLayerDefinition pLayerDef =pLayer as IFeatureLayerDefinition;
            pLayerDef.DefinitionExpression = Filter;
            pMap.AddLayer(pLayer);           
        }
        public void LoadCadLayer(string CadFileName)
        {
       
        }
    }
}
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值