Ejemplo n.º 1
0
        private void DisplayOgrErrors(IVectorLayer layer)
        {
            var logger = Logger.Current;

            for (int i = 0; i < layer.UpdateSourceErrorCount; i++)
            {
                logger.Warn("Failed to save feature {0}: {1}", null, layer.get_UpdateSourceErrorGeometryIndex(i),
                            layer.get_UpdateSourceErrorMsg(i));
            }
        }
Ejemplo n.º 2
0
        public DatabaseLayerMetadata(IVectorLayer layer)
        {
            if (layer == null)
            {
                throw new ArgumentNullException("layer");
            }

            // we don't want to keep the connection open all the time, so simply grab the necessary data
            Name         = layer.Name;
            GeometryType = layer.ActiveGeometryType;
            NumFeatures  = layer.get_FeatureCount();
            Projection   = layer.Projection;
            Connection   = layer.ConnectionString;
        }
Ejemplo n.º 3
0
        public static NodeData GetVectorLayerInfo(IVectorLayer ogr)
        {
            if (ogr == null)
            {
                return(new NodeData("Datasource type", "ESRI Shapefile"));
            }

            var root = new NodeData("OGR datasource");

            root.AddSubItem("Datasource type", "OGR layer");
            root.AddSubItem("Driver name", ogr.DriverName);
            root.AddSubItem("Connection string", ogr.ConnectionString);
            root.AddSubItem("Layer type", ogr.SourceType.ToString());
            root.AddSubItem("Name or query", ogr.SourceQuery);
            root.AddSubItem("Supports editing", ogr.get_SupportsEditing(SaveType.SaveAll).ToString());
            root.AddSubItem("Dynamic loading", ogr.DynamicLoading.ToString());

            return(root);
        }
Ejemplo n.º 4
0
        public DatabaseLayerMetadata(IVectorLayer layer)
        {
            if (layer == null)
            {
                throw new ArgumentNullException("layer");
            }

            Logger.Current.Trace("In DatabaseLayerMetadata");
            // we don't want to keep the connection open all the time, so simply grab the necessary data
            Name = layer.Name;
            Logger.Current.Trace("Name: " + Name);
            GeometryType = layer.ActiveGeometryType;
            Logger.Current.Trace("GeometryType: " + GeometryType);
            NumFeatures = layer.get_FeatureCount();
            Logger.Current.Trace("NumFeatures: " + NumFeatures);
            Projection = layer.Projection;
            Logger.Current.Trace("Projection: " + Projection);
            Connection = layer.ConnectionString;
            Logger.Current.Trace("Connection: " + Connection);
        }
Ejemplo n.º 5
0
        public IDatabaseLayerItem AddDatabaseLayer(IVectorLayer layer, bool multipleGeometries = false)
        {
            if (layer == null)
            {
                throw new ArgumentNullException("layer");
            }

            var node = CreateNode(RepositoryItemType.DatabaseLayer);

            node.LeftImageIndices = new[] { GetVectorIcon(layer.ActiveGeometryType) };

            node.Text = layer.Name;
            if (multipleGeometries)
            {
                node.Text += " [" + layer.ActiveGeometryType + "]";
            }

            node.TagObject    = new DatabaseLayerMetadata(layer);
            node.ExpandedOnce = true;
            return(AddNode(node) as IDatabaseLayerItem);
        }