• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
一个喜欢踢球却不喜欢看球的人
博客园    首页    新随笔    联系   管理    订阅  订阅
AE还是AO了开发小结!!!!!至今没搞懂我用的是AE还是AO
AE AO
自己看,不解释!
代码
/********************************************************
 * 
 * SXW 2010 08 14 
 * 本类部分功能接口依附于_workSpaceInstance
 * 必须首先使用CreateWorkspace或者OpenWorkspaceFromFile
 * 实例化_workSpaceInstance,才能使用
 *
*******************************************************
*/
using System;
using System.Windows.Forms;
using System.IO;
using System.Data;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.CatalogUI;

namespace ControlLibrary
{
    
class RuleDBCreater
    {
        
private static IWorkspace _workSpaceInstance;
        
public RuleDBCreater()
        {
            
//
            
// TODO: 在此处添加构造函数逻辑
            
//
        }

        
public static void setWorkSpaceInstance(IWorkspace ws)
        {
            _workSpaceInstance 
= ws;
        }

        
public static IWorkspace getWorkSpaceInstance()
        {
            
return _workSpaceInstance;
        }
        
/// <summary>
        
/// 创建规则数据库workspace
        
/// </summary>
        
/// <param name="workspaceType"></param>
        
/// <param name="WorkspaceDirectory"></param>
        
/// <returns>返回workspace实例</returns>
        public static IWorkspace CreateWorkspace(string pName, string pPath)
        {
            IWorkspaceFactory workspaceFactory 
= null;
            Type factoryType 
= Type.GetTypeFromProgID("esriDataSourcesGDB.AccessWorkspaceFactory");
            workspaceFactory 
= (IWorkspaceFactory)Activator.CreateInstance(factoryType);
            Directory.CreateDirectory(pPath);
            IWorkspaceName workspaceName 
= workspaceFactory.Create(pPath, pName,null, 0);
            IName Name 
= (IName)workspaceName;
            _workSpaceInstance 
= (IWorkspace)(Name.Open());
            
return _workSpaceInstance;
        }
        
/// <summary>
        
/// 从文件创建规则数据库workspace
        
/// </summary>
        
/// <param name="WorkspaceDirectory"></param>
        
/// <returns>返回workspace实例</returns>
        public static IWorkspace OpenWorkspaceFromFile(string WorkspaceDirectory)
        {
            IWorkspaceFactory workspaceFactory 
= null;
            Type factoryType 
= Type.GetTypeFromProgID("esriDataSourcesGDB.AccessWorkspaceFactory");
            workspaceFactory 
= (IWorkspaceFactory)Activator.CreateInstance(factoryType);
            _workSpaceInstance 
= workspaceFactory.OpenFromFile(WorkspaceDirectory, 0);
            
return _workSpaceInstance;
        }
        
/// <summary>
        
/// 创建要素数据集
        
/// </summary>
        
/// <param name="name"></param>
        
/// <returns>IFeatureDataset</returns>
        public static IFeatureDataset CreateFeatureDataSet(/*string name,ISpatialReference srf*/)
        {
            IFeatureDatasetDialog fdlg 
= new FeatureDatasetDefDialog();
            IFeatureWorkspace featureWorkspace 
= (IFeatureWorkspace)_workSpaceInstance;
            
return fdlg.DoModalCreate(featureWorkspace, 0);
            
//if (_workSpaceInstance == null) return null;
            
//IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)_workSpaceInstance;
            
//IFeatureDataset tmp = featureWorkspace.CreateFeatureDataset(name, srf);
            
//return tmp;
        }
        
/// <summary>
        
/// 删除要素数据集
        
/// </summary>
        
/// <param name="name"></param>
        
/// <param name="srf"></param>
        
/// <returns></returns>
        public static void DeleteFeatureDataSet(string name)
        {
            IFeatureDataset fds 
= GetFeatureDataSet(name);
            
if (fds != null)
                fds.Delete();
        }
        
/// <summary>
        
/// 获取数据库中IFeatureDataset
        
/// </summary>
        
/// <param name="name"></param>
        
/// <returns></returns>
        public static IFeatureDataset GetFeatureDataSet(string name)
        {
            
if (_workSpaceInstance == null) return null;
            IFeatureWorkspace featureWorkspace 
= (IFeatureWorkspace)_workSpaceInstance;
            IFeatureDataset tmp 
= featureWorkspace.OpenFeatureDataset(name);
            
return tmp;
        }
        
/// <summary>
        
/// 重命名DataSet
        
/// </summary>
        
/// <param name="fds"></param>
        
/// <param name="newname"></param>
        public static void RenameFeatureDataSet(IFeatureDataset fds,string newname)
        {
            
if (fds.CanRename())
            {
                fds.Rename(newname);
            }
        }
        
/// <summary>
        
/// 获取IFeatureDataset空间参照
        
/// </summary>
        
/// <param name="ds"></param>
        
/// <returns></returns>
        public static ISpatialReference GetFdsSpatialReference(IFeatureDataset ds)
        {
            IGeoDataset gds 
= ds as IGeoDataset;
            
return gds.SpatialReference;
        }
        
/// <summary>
        
/// 设置IFeatureDataset空间参照
        
/// </summary>
        
/// <param name="ds"></param>
        
/// <returns></returns>
        public static void SetFdsSpatialReference(IFeatureDataset ds)
        {
            IGeoDataset gds 
= ds as IGeoDataset;
            
// Cast the geodataset to the IGeoDatasetSchemaEdit interface and set the Spatial Reference.    
            IGeoDatasetSchemaEdit geoDatasetSchemaEdit = (IGeoDatasetSchemaEdit)gds;
            
if (geoDatasetSchemaEdit.CanAlterSpatialReference)
            {
                geoDatasetSchemaEdit.AlterSpatialReference(EditSpatialReferenceDlg(gds.SpatialReference));
            }
        }
        
/// <summary>
        
/// 创建属性字段
        
/// </summary>
        
/// <param name="shapeType"></param>
        
/// <param name="dgrc"></param>
        
/// <param name="spr"></param>
        
/// <returns></returns>
        public static IFields CreateFields(string shapeType, DataTable dt, ISpatialReference spr,bool hasM,bool hasZ)
        {
            IField oField 
= new FieldClass();
            IFieldEdit oFieldEdit 
= oField as IFieldEdit;
            IFields oFields 
= new FieldsClass();
            IFieldsEdit oFieldsEdit 
= oFields as IFieldsEdit;

            IGeometryDef geometryDef 
= new GeometryDefClass();
            IGeometryDefEdit geometryDefEdit 
= geometryDef as IGeometryDefEdit;

            
foreach(DataRow dr in dt.Rows)
            {
                
switch (dr[1].ToString())
                {
                    
case "Object ID":
                        oFieldEdit.Name_2 
= "ObjectID";
                        oFieldEdit.AliasName_2 
= "FID";
                        oFieldEdit.Type_2 
= esriFieldType.esriFieldTypeOID;
                        oFieldsEdit.AddField(oField);
                        
break;
                    
case "Multipoint Features":
                        oField 
= new FieldClass();
                        oFieldEdit 
= oField as IFieldEdit;
                        oFieldEdit.Name_2 
= "SHAPE";
                        oFieldEdit.IsNullable_2 
= true;
                        oFieldEdit.Required_2 
= true;

                        geometryDefEdit.AvgNumPoints_2 
= 1;
                        geometryDefEdit.GridCount_2 
= 0;
                        geometryDefEdit.HasM_2 
= hasM;
                        geometryDefEdit.HasZ_2 
= hasZ;
                        geometryDefEdit.GeometryType_2 
= esriGeometryType.esriGeometryMultipoint;
                        geometryDefEdit.SpatialReference_2 
= spr;

                        oFieldEdit.Type_2 
= esriFieldType.esriFieldTypeGeometry;
                        oFieldEdit.GeometryDef_2 
= (GeometryDef)geometryDefEdit;
                        oFieldsEdit.AddField(oField);
                        
break;
                    
case "MultiPatch Features":
                        oField 
= new FieldClass();
                        oFieldEdit 
= oField as IFieldEdit;
                        oFieldEdit.Name_2 
= "SHAPE";
                        oFieldEdit.IsNullable_2 
= true;
                        oFieldEdit.Required_2 
= true;
                       
                        geometryDef 
= new GeometryDefClass();
                        geometryDefEdit 
= geometryDef as IGeometryDefEdit;
                        geometryDefEdit.AvgNumPoints_2 
= 1;
                        geometryDefEdit.GridCount_2 
= 0;
                        geometryDefEdit.HasM_2 
= hasM;
                        geometryDefEdit.HasZ_2 
= hasZ;
                        geometryDefEdit.GeometryType_2 
= esriGeometryType.esriGeometryMultiPatch;
                        geometryDefEdit.SpatialReference_2 
= spr;

                        oFieldEdit.Type_2 
= esriFieldType.esriFieldTypeGeometry;
                        oFieldEdit.GeometryDef_2 
= (GeometryDef)geometryDefEdit;
                        oFieldsEdit.AddField(oField);
                        
break;
                    
case "Point Features":
                        oField 
= new FieldClass();
                        oFieldEdit 
= oField as IFieldEdit;
                        oFieldEdit.Name_2 
= "SHAPE";
                        oFieldEdit.IsNullable_2 
= true;
                        oFieldEdit.Required_2 
= true;

                        geometryDef 
= new GeometryDefClass();
                        geometryDefEdit 
= geometryDef as IGeometryDefEdit;
                        geometryDefEdit.AvgNumPoints_2 
= 1;
                        geometryDefEdit.GridCount_2 
= 0;
                        geometryDefEdit.HasM_2 
= hasM;
                        geometryDefEdit.HasZ_2 
= hasZ;
                        geometryDefEdit.GeometryType_2 
= esriGeometryType.esriGeometryPoint;
                        geometryDefEdit.SpatialReference_2 
= spr;

                        oFieldEdit.Type_2 
= esriFieldType.esriFieldTypeGeometry;
                        oFieldEdit.GeometryDef_2 
= (GeometryDef)geometryDefEdit;
                        oFieldsEdit.AddField(oField);
                        
break;
                    
case "Line Features":
                        oField 
= new FieldClass();
                        oFieldEdit 
= oField as IFieldEdit;
                        oFieldEdit.Name_2 
= "SHAPE";
                        oFieldEdit.IsNullable_2 
= true;
                        oFieldEdit.Required_2 
= true;
            
                        geometryDef 
= new GeometryDefClass();
                        geometryDefEdit 
= geometryDef as IGeometryDefEdit;
                        geometryDefEdit.AvgNumPoints_2 
= 1;
                        geometryDefEdit.GridCount_2 
= 0;
                        geometryDefEdit.HasM_2 
= hasM;
                        geometryDefEdit.HasZ_2 
= hasZ;
                        geometryDefEdit.GeometryType_2 
= esriGeometryType.esriGeometryLine;
                        geometryDefEdit.SpatialReference_2 
= spr;

                        oFieldEdit.Type_2 
= esriFieldType.esriFieldTypeGeometry;
                        oFieldEdit.GeometryDef_2 
= (GeometryDef)geometryDefEdit;
                        oFieldsEdit.AddField(oField);
                        
break;
                    
case "Polygon Features":
                        oField 
= new FieldClass();
                        oFieldEdit 
= oField as IFieldEdit;
                        oFieldEdit.Name_2 
= "SHAPE";
                        oFieldEdit.IsNullable_2 
= true;
                        oFieldEdit.Required_2 
= true;

                        geometryDef 
= new GeometryDefClass();
                        geometryDefEdit 
= geometryDef as IGeometryDefEdit;
                        geometryDefEdit.AvgNumPoints_2 
= 1;
                        geometryDefEdit.GridCount_2 
= 0;
                        geometryDefEdit.HasM_2 
= hasM;
                        geometryDefEdit.HasZ_2 
= hasZ;
                        geometryDefEdit.GeometryType_2 
= esriGeometryType.esriGeometryPolygon;
                        geometryDefEdit.SpatialReference_2 
= spr;

                        oFieldEdit.Type_2 
= esriFieldType.esriFieldTypeGeometry;
                        oFieldEdit.GeometryDef_2 
= (GeometryDef)geometryDefEdit;
                        oFieldsEdit.AddField(oField);
                        
break;
                    
case "Short Int":
                        oField 
= new FieldClass();
                        oFieldEdit 
= oField as IFieldEdit;
                        oFieldEdit.Name_2 
= dr[0].ToString();
                        oFieldEdit.Type_2 
= esriFieldType.esriFieldTypeSmallInteger;
                        oFieldEdit.IsNullable_2 
= true;
                        oFieldsEdit.AddField(oField);
                        
break;
                    
case "Long Int":
                        oField 
= new FieldClass();
                        oFieldEdit 
= oField as IFieldEdit;
                        oFieldEdit.Name_2 
= dr[0].ToString();
                        oFieldEdit.Type_2 
= esriFieldType.esriFieldTypeInteger;
                        oFieldsEdit.AddField(oField);
                        
break;
                    
case "Float":
                        oField 
= new FieldClass();
                        oFieldEdit 
= oField as IFieldEdit;
                        oFieldEdit.Name_2 
= dr[0].ToString();
                        oFieldEdit.Type_2 
= esriFieldType.esriFieldTypeSingle;
                        oFieldsEdit.AddField(oField);
                        
break;
                    
case "Double":
                        oField 
= new FieldClass();
                        oFieldEdit 
= oField as IFieldEdit;
                        oFieldEdit.Name_2 
= dr[0].ToString();
                        oFieldEdit.Type_2 
= esriFieldType.esriFieldTypeDouble;
                        oFieldsEdit.AddField(oField);
                        
break;
                    
case "Text":
                        oField 
= new FieldClass();
                        oFieldEdit 
= oField as IFieldEdit;
                        oFieldEdit.Name_2 
= dr[0].ToString();
                        oFieldEdit.Length_2 
= 30; // Only string fields require that you set the length.
                        oFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
                        oFieldsEdit.AddField(oField);
                        
break;
                    
case "Date":
                        oField 
= new FieldClass();
                        oFieldEdit 
= oField as IFieldEdit;
                        oFieldEdit.Name_2 
= dr[0].ToString();
                        oFieldEdit.Type_2 
= esriFieldType.esriFieldTypeDate;
                        oFieldsEdit.AddField(oField);
                        
break;
                    
//case "Guid":
                    
//    IField fld12 = new FieldClass();
                    
//    IFieldEdit fldedt12 = (IFieldEdit)fld12;
                    
//    fldedt12.Name_2 = dr[0].ToString();
                    
//    fldedt12.Type_2 = esriFieldType.esriFieldTypeGUID;
                    
//    fieldsEdit.set_Field(i, fld12);
                    
//    break;
                    
//case "Geomery":
                    
//    IField fld13 = new FieldClass();
                    
//    IFieldEdit fldedt13 = (IFieldEdit)fld13;
                    
//    fldedt13.Name_2 = dr[0].ToString();
                    
//    fldedt13.IsNullable_2 = true;
                    
//    fldedt13.Required_2 = true;
                    
//    IGeometryDef geometryDef13 = new GeometryDefClass();
                    
//    IGeometryDefEdit geometryDefEdit13 = (IGeometryDefEdit)geometryDef13;
                    
//    geometryDef13 = new GeometryDefClass();
                    
//    geometryDefEdit13 = (IGeometryDefEdit)geometryDef13;
                    
//    geometryDefEdit13.AvgNumPoints_2 = 1;
                    
//    geometryDefEdit13.GridCount_2 = 0;
                    
//    geometryDefEdit13.HasM_2 = hasM;
                    
//    geometryDefEdit13.HasZ_2 = hasZ;
                    
//    fldedt13.Type_2 = esriFieldType.esriFieldTypeGeometry;
                    
//    geometryDefEdit13.GeometryType_2 = esriGeometryType.esriGeometryAny;
                    
//    //Generate a default Spatial Reference
                    
//    geometryDefEdit13.SpatialReference_2 = spr;
                    
//    fldedt13.GeometryDef_2 = (GeometryDef)geometryDefEdit13;
                    
//    fldedt13.Type_2 = esriFieldType.esriFieldTypeGeometry;
                    
//    fieldsEdit.set_Field(i, fld13);
                    
//    break;
                    
//case "Raster":
                    
//    IField fld14 = new FieldClass();
                    
//    IFieldEdit fldedt14 = (IFieldEdit)fld14;
                    
//    fldedt14.Name_2 = dr[0].ToString();
                    
//    fldedt14.Type_2 = esriFieldType.esriFieldTypeRaster;
                    
//    fieldsEdit.set_Field(i, fld14);
                    
//    break;
                }
            }
            
return oFields;
        }     
        
/// <summary>
        
/// 创建要素类
        
/// </summary>
        
/// <param name="workspace"></param>
        
/// <param name="featureDataset"></param>
        
/// <param name="featureClassName"></param>
        
/// <param name="fields"></param>
        
/// <param name="CLSID"></param>
        
/// <param name="CLSEXT"></param>
        
/// <param name="strConfigKeyword"></param>
        
/// <returns></returns>
        public static IFeatureClass CreateFeatureClass(IFeatureDataset featureDataset, String featureClassName, IFields fields)
        {
            
if (_workSpaceInstance == null) return null;
            IFeatureClass featureClass 
= null;
            IFeatureWorkspace featureWorkspace 
= (IFeatureWorkspace)_workSpaceInstance; 

            
// assign the class id value if not assigned
            ESRI.ArcGIS.esriSystem.UID CLSID = null;
            ESRI.ArcGIS.esriSystem.UID CLSEXT 
= null;
            
string strConfigKeyword = "";
            
if (CLSID == null)
            {
                CLSID 
= new ESRI.ArcGIS.esriSystem.UIDClass();
                CLSID.Value 
= "esriGeoDatabase.Feature";
            }

            System.String strShapeField 
= "";

            
// locate the shape field
            for (Int32 j = 0; j < fields.FieldCount; j++)
            {
                esriFieldType dd 
= fields.get_Field(j).Type;
                
if (dd == esriFieldType.esriFieldTypeGeometry)
                {
                    strShapeField 
= fields.get_Field(j).Name;
                }
            }

            
// finally create and return the feature class
            if (featureDataset != null)
            {
                featureClass 
= featureDataset.CreateFeatureClass(featureClassName, fields, CLSID, CLSEXT, esriFeatureType.esriFTSimple, strShapeField, strConfigKeyword);
            }
            
            
return featureClass;
        }
        
/// <summary>
        
/// 获取FeatureClass从IFeatureDataset
        
/// </summary>
        
/// <param name="featDs"></param>
        
/// <param name="className"></param>
        
/// <returns></returns>
        public static IFeatureClass GetFeatureClassFromFeatureDataset(IFeatureDataset featDs, string className)
        {
            IFeatureClass featClass;
            IFeatureClassContainer fcContainer 
= featDs as IFeatureClassContainer;
            
for (int i = 0; i < fcContainer.ClassCount; i++)
            {
                featClass 
= fcContainer.get_Class(i);
                
if (RuleDBCreater.GetFeatureClassName(featClass) == className)
                {
                    
return featClass;
                }
            }
            
return null;
        }
        
/// <summary>
        
/// 重命名FeatureClass
        
/// </summary>
        
/// <param name="fds"></param>
        
/// <param name="newname"></param>
        public static void RenameFeatureClass(IFeatureClass fc,string newname)
        {
            IDataset ds 
= fc as IDataset;
            
if (ds.CanRename())
            {
                ds.Rename(newname);
            }
        }
        
/// <summary>
        
/// 从数据集删除要素类
        
/// </summary>
        
/// <param name="featureDataset"></param>
        
/// <param name="featureClassName"></param>
        
/// <param name="fields"></param>
        
/// <returns></returns>
        public static void DeleteFeatureClass(IFeatureDataset featureDataset, String featureClassName)
        {
            IFeatureClass fc 
= GetFeatureClassFromFeatureDataset(featureDataset, featureClassName);
            
if (fc != null)
            {
                IDataset ds 
= fc as IDataset;
                
if (ds.CanDelete())
                {
                    ds.Delete();
                }
            }
        }
        
/// <summary>
        
/// 编辑空间参照
        
/// </summary>
        
/// <param name="inputSpr"></param>
        
/// <returns></returns>
        public static ISpatialReference EditSpatialReferenceDlg(ISpatialReference inputSpr)
        {
            ESRI.ArcGIS.CatalogUI.ISpatialReferenceDialog2 spatialReferenceDialog2 
= new ESRI.ArcGIS.CatalogUI.SpatialReferenceDialogClass();
            ISpatialReference spf 
= spatialReferenceDialog2.DoModalEdit(inputSpr, false, false, false, false, false, false, false, 0);
            
return spf;
        }
        
/// <summary>
        
/// 创建空间参照
        
/// </summary>
        
/// <param name="coordinateSystem"></param>
        
/// <returns></returns>
        public static ISpatialReference CreateSpatialReferenceDlg()//
        {
            ESRI.ArcGIS.CatalogUI.ISpatialReferenceDialog2 spatialReferenceDialog2 
= new ESRI.ArcGIS.CatalogUI.SpatialReferenceDialogClass();
            ISpatialReference spatialReference 
= spatialReferenceDialog2.DoModalCreate(true, false, false, 0);
            
//ISpatialReferenceTolerance spatialReferenceTolerance = spatialReference as ISpatialReferenceTolerance;
            return spatialReference;
        }

        
public static ISpatialReference SetXYZMTolerance(ISpatialReference srf,double xytolerance,double ztolerance,double mtolerance)
        {
            ISpatialReferenceTolerance spatialReferenceTolerance 
= srf as ISpatialReferenceTolerance;
            
//spatialReferenceTolerance.XYTolerance = xytolerance;
            
//spatialReferenceTolerance.ZTolerance = ztolerance;
            
//spatialReferenceTolerance.MTolerance = mtolerance;
            return srf;
        }

        
public static void GetXYZMTolerance(ISpatialReference srf,out double xytolerance,out double ztolerance,out double mtolerance)
        {
            ISpatialReferenceTolerance spatialReferenceTolerance 
= srf as ISpatialReferenceTolerance;
            xytolerance 
= spatialReferenceTolerance.XYTolerance;
            ztolerance 
= spatialReferenceTolerance.ZTolerance;
            mtolerance 
= spatialReferenceTolerance.MTolerance;
        }
        
/// <summary>
        
/// 获取工作区内所有数据集名称
        
/// </summary>
        
/// <param name="ws"></param>
        
/// <returns></returns>
        public static IEnumDatasetName GetFeatureDataSetNames(IWorkspace ws)
        {
            
return ws.get_DatasetNames(esriDatasetType.esriDTFeatureDataset);
        }

        
public static bool IsArcDbFile(string path)
        {
            IWorkspaceFactory workspaceFactory 
= null;
            Type factoryType 
= Type.GetTypeFromProgID("esriDataSourcesGDB.AccessWorkspaceFactory");
            workspaceFactory 
= (IWorkspaceFactory)Activator.CreateInstance(factoryType);
            
return workspaceFactory.IsWorkspace(path);
        }

        
public static string GetFeatureClassName(IFeatureClass fc)
        {
            IDataset ds 
= fc as IDataset;
            
return ds.Name;
        }

        
public static IEnumFeatureClass GetFeatureClasses(IFeatureDataset fds)
        {
            IFeatureClassContainer pFeatureclassContainer 
= (IFeatureClassContainer)fds;
            
return (IEnumFeatureClass)pFeatureclassContainer.Classes;
        }

        
public static bool IsFeatureDataSetExist(string name)
        {
            
//if (_workSpaceInstance == null) return true;
            IEnumDatasetName iEdn = GetFeatureDataSetNames(_workSpaceInstance);
            iEdn.Reset();
            IDatasetName iDsn 
= iEdn.Next();
            
while (iDsn is IFeatureDatasetName)
            {
                
if (iDsn.Name == name)   
                    
return true;
                iDsn 
= iEdn.Next();
            }
            
return false;
        }

        
public static bool IsFeatureClassExist(string dsname, string fcname)
        {
            IEnumFeatureClass iEfc 
= GetFeatureClasses(GetFeatureDataSet(dsname));
            iEfc.Reset();
            IFeatureClass fcn 
= iEfc.Next();
            
while (fcn is IFeatureClass)
            {
                
if (fcname == fcn.AliasName)
                    
return true;
                fcn 
= iEfc.Next();
            }
            
return false;
        }
        
/// <summary>
        
/// 设置VerticalCoordinateSystem
        
/// </summary>
        public static ISpatialReference3 SetVerticalCoordinateSystem(ISpatialReference3 spatialReference3)
        {
            ISpatialReferenceFactory3 spatialReferenceFactory3 
= new SpatialReferenceEnvironmentClass();
            IVerticalCoordinateSystem verticalCoordinateSystem 
= spatialReferenceFactory3.CreateVerticalCoordinateSystem((int)esriSRVerticalCSType.esriSRVertCS_NAVD1988);
            spatialReference3.VerticalCoordinateSystem 
= verticalCoordinateSystem;
            
return spatialReference3;
        }
    }
}
//public static bool IsNameValid(string str)
//{
//    System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"^[a-zA-Z]\w{0,17}$");
//    if (reg.IsMatch(s))
//    {
//        return true;
//    }
//    else
//    {
//        return false;
//    }
//}

 

posted on 2010-08-19 21:38  脚会彈琴的人  阅读(2281)  评论(2)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3