private ISpatialReference GetSpatialReference(int xyCoordinateSystem) { const bool IsHighPrecision = true; ISpatialReference spatialReference; ISpatialReferenceFactory3 spatialReferenceFactory = new SpatialReferenceEnvironmentClass(); spatialReference = spatialReferenceFactory.CreateSpatialReference(xyCoordinateSystem); IControlPrecision2 controlPrecision = spatialReference as IControlPrecision2; controlPrecision.IsHighPrecision = IsHighPrecision; ISpatialReferenceResolution spatialReferenceResolution = spatialReference as ISpatialReferenceResolution; spatialReferenceResolution.ConstructFromHorizon(); spatialReferenceResolution.SetDefaultXYResolution(); spatialReferenceResolution.SetDefaultZResolution(); spatialReferenceResolution.SetDefaultMResolution(); ISpatialReferenceTolerance spatialReferenceTolerance = spatialReference as ISpatialReferenceTolerance; spatialReferenceTolerance.SetDefaultXYTolerance(); spatialReferenceTolerance.SetDefaultZTolerance(); spatialReferenceTolerance.SetDefaultMTolerance(); return(spatialReference); }
/// <summary> /// 创建要素集 20110919 xisheng /// </summary> /// <param name="feaworkspace">指定工作空间</param> /// <param name="datasetname">指定要素集名称</param> /// <param name="PrjPath">空间参考</param> /// <returns></returns> private static IFeatureDataset CreateFeatureDataset(IFeatureWorkspace feaworkspace, string datasetname, string PrjPath) { try { string spatialPath = PrjPath; ISpatialReferenceFactory pSpaReferenceFac = new SpatialReferenceEnvironmentClass(); //空间参考工厂 ISpatialReference pSpatialReference = null; //用来获得空间参考 if (File.Exists(spatialPath)) { pSpatialReference = pSpaReferenceFac.CreateESRISpatialReferenceFromPRJFile(spatialPath); } if (pSpatialReference == null) { pSpatialReference = new UnknownCoordinateSystemClass(); } //设置默认的Resolution ISpatialReferenceResolution pSpatiaprefRes = pSpatialReference as ISpatialReferenceResolution; pSpatiaprefRes.ConstructFromHorizon();//Defines the XY resolution and domain extent of this spatial reference based on the extent of its horizon pSpatiaprefRes.SetDefaultXYResolution(); pSpatiaprefRes.SetDefaultZResolution(); pSpatiaprefRes.SetDefaultMResolution(); //设置默认的Tolerence ISpatialReferenceTolerance pSpatialrefTole = pSpatiaprefRes as ISpatialReferenceTolerance; pSpatialrefTole.SetDefaultXYTolerance(); pSpatialrefTole.SetDefaultZTolerance(); pSpatialrefTole.SetDefaultMTolerance(); //创建数据集 IFeatureDataset pFeatureDataset = null;//定义数据集用来装载要素类 pFeatureDataset = feaworkspace.CreateFeatureDataset(datasetname, pSpatialReference); return(pFeatureDataset); } catch (Exception e) { //******************************************************************* //guozheng added if (ModData.SysLog != null) { ModData.SysLog.Write(e, null, DateTime.Now); } else { ModData.SysLog = new SysCommon.Log.clsWriteSystemFunctionLog(); ModData.SysLog.Write(e, null, DateTime.Now); } //******************************************************************** return(null); } }