/// <summary> /// Deletes the anno features in feature layer. /// </summary> /// <param name="featureLayer">The feature layer.</param> public static void DeleteAnnoFeaturesInFeatureLayer(IFeatureLayer featureLayer) { if (featureLayer == null) { return; } IFeatureClass featureClass = featureLayer.FeatureClass; IDataset dataset = featureClass as IDataset; IWorkspace pWorkspace = dataset.Workspace; IWorkspaceEdit pWorkspaceEdit = pWorkspace as IWorkspaceEdit; pWorkspaceEdit.StartEditing(true); pWorkspaceEdit.StartEditOperation(); IWorkspaceProperties2 workspaceProperties2 = (IWorkspaceProperties2)pWorkspace; //判断workspace是否可以执行SQL语句 IWorkspaceProperty canExecuteSqlProperty = workspaceProperties2.get_Property(esriWorkspacePropertyGroupType.esriWorkspacePropertyGroup, (int)esriWorkspacePropertyType.esriWorkspacePropCanExecuteSQL); if (canExecuteSqlProperty.IsSupported) { //ExecuteSQL删除feature pWorkspace.ExecuteSQL("delete from " + featureClass.AliasName + " where objectid >=0"); } pWorkspaceEdit.StopEditOperation(); pWorkspaceEdit.StopEditing(true); }
/// <summary> // 创建要素数据集 /// </summary> /// <param name="workspace"></param> /// <param name="code"></param> /// <param name="datasetName"></param> /// <returns></returns> public IFeatureDataset CreateFeatureClass(IWorkspace workspace, int code, string datasetName) { IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace; //创建一个要素集创建一个投影 ISpatialReferenceFactory spatialRefFactory = new SpatialReferenceEnvironmentClass(); ISpatialReference spatialReference = spatialRefFactory.CreateProjectedCoordinateSystem(code); //确定是否支持高精度存储空间 Boolean supportsHighPrecision = false; IWorkspaceProperties workspaceProperties = (IWorkspaceProperties)workspace; IWorkspaceProperty workspaceProperty = workspaceProperties.get_Property (esriWorkspacePropertyGroupType.esriWorkspacePropertyGroup, (int)esriWorkspacePropertyType.esriWorkspacePropSupportsHighPrecisionStorage); if (workspaceProperty.IsSupported) { supportsHighPrecision = Convert.ToBoolean(workspaceProperty.PropertyValue); } //设置投影精度 IControlPrecision2 controlPrecision = (IControlPrecision2)spatialReference; controlPrecision.IsHighPrecision = supportsHighPrecision; //设置容差 ISpatialReferenceResolution spatialRefResolution = (ISpatialReferenceResolution)spatialReference; spatialRefResolution.ConstructFromHorizon(); spatialRefResolution.SetDefaultXYResolution(); ISpatialReferenceTolerance spatialRefTolerance = (ISpatialReferenceTolerance)spatialReference; spatialRefTolerance.SetDefaultXYTolerance(); //创建要素集 IFeatureDataset featureDataset = featureWorkspace.CreateFeatureDataset(datasetName, spatialReference); return(featureDataset); }
private static void LogWorkspaceProperties( [NotNull] IWorkspaceProperties props, params esriWorkspacePropertyType[] propertyTypes) { var watch = new Stopwatch(); foreach (esriWorkspacePropertyType propertyType in propertyTypes) { watch.Reset(); watch.Start(); IWorkspaceProperty property = props.Property[ esriWorkspacePropertyGroupType.esriWorkspacePropertyGroup, (int)propertyType]; watch.Stop(); if (property.IsSupported) { Console.WriteLine(@"{0}: {1} ({2:N6} ms)", propertyType, property.PropertyValue, watch.ElapsedTicks / (double)TimeSpan.TicksPerMillisecond); } else { Console.WriteLine(@"{0}: {1} [not supported] ({2:N6} ms)", propertyType, property.PropertyValue, watch.ElapsedTicks / (double)TimeSpan.TicksPerMillisecond); } } }
public static bool IsConnectedToGeodatabase(IWorkspace iworkspace_0) { IWorkspaceProperty property = ((IWorkspaceProperties)iworkspace_0).Property[ esriWorkspacePropertyGroupType.esriWorkspacePropertyGroup, 7]; return(Convert.ToBoolean(property.PropertyValue)); }
public static void ClearFeaturesInFeatureLayer(IFeatureLayer featureLayer) { if (featureLayer == null) { return; } IFeatureClass featureClass = featureLayer.FeatureClass; IDataset dataset = featureClass as IDataset; IWorkspace pWorkspace = dataset.Workspace; IWorkspaceProperties2 workspaceProperties2 = pWorkspace as IWorkspaceProperties2; //判断workspace是否可以执行SQL语句 IWorkspaceProperty canExecuteSqlProperty = workspaceProperties2.Property[ esriWorkspacePropertyGroupType.esriWorkspacePropertyGroup, (int)esriWorkspacePropertyType.esriWorkspacePropCanExecuteSQL]; if (canExecuteSqlProperty.IsSupported) { //ExecuteSQL删除feature pWorkspace.ExecuteSQL("delete from " + featureClass.AliasName + " where objectid >=0"); } }
// Todo - what to do here? public void set_Property(esriWorkspacePropertyGroupType propertyGroup, int PropertyType, IWorkspaceProperty WorkspaceProperty) { throw new Exception("The method or operation is not implemented."); }