コード例 #1
0
ファイル: CommonHelper.cs プロジェクト: frankerlee/Yutai
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        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);
                }
            }
        }
コード例 #4
0
ファイル: WorkspaceOperator.cs プロジェクト: secondii/Yutai
        public static bool IsConnectedToGeodatabase(IWorkspace iworkspace_0)
        {
            IWorkspaceProperty property =
                ((IWorkspaceProperties)iworkspace_0).Property[
                    esriWorkspacePropertyGroupType.esriWorkspacePropertyGroup, 7];

            return(Convert.ToBoolean(property.PropertyValue));
        }
コード例 #5
0
ファイル: CommonHelper.cs プロジェクト: frankerlee/Yutai
        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");
            }
        }
コード例 #6
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.");
 }