コード例 #1
0
ファイル: SpatialiteExporter.cs プロジェクト: zenwalk/umbriel
        public void Export(string spatialiteDatabasePath, ILayer layer)
        {
            SpatialLiteDB db   = new SpatialLiteDB(spatialiteDatabasePath);
            int           srid = this.FindSRID(layer, db);

            this.Export(spatialiteDatabasePath, srid, layer);
        }
コード例 #2
0
ファイル: SpatialiteExporter.cs プロジェクト: zenwalk/umbriel
        private void WriteTable(SpatialLiteDB database, int srid, DataTable table, IFeatureClass fc)
        {
            string geometryColumn = "geom";
            string tableName      = table.TableName.Replace(' ', '_');

            string s = CreateTableDDL(table);

            database.CreateTable(s);


            database.InsertEvent += new SpatialLiteDB.InsertEventHandler(database_InsertEvent);

            database.Insert(table, this.FieldNameMap);

            try
            {
                this.OnStatusMessage(string.Format("Adding geometry column ({0}) with SRID: {1} to table: {2}",
                                                   geometryColumn,
                                                   srid,
                                                   tableName));

                database.AddGeometryColumn(
                    tableName,
                    geometryColumn,
                    srid,
                    Constants.SpatialiteGeometryType[fc.ShapeType]);

                this.OnStatusMessage(string.Format("Geometry column ({0}) with SRID: {1} successfully added to table: {2}!",
                                                   geometryColumn,
                                                   srid,
                                                   tableName));

                this.OnStatusMessage(string.Format("Updating geometry column ({0}) in table: {1}",
                                                   geometryColumn,
                                                   tableName));


                this.OnGeometryExportProgress(0, 1);

                database.UpdateGeometryColumnFromWKB(
                    tableName,
                    geometryColumn,
                    srid,
                    "wkb");

                this.OnGeometryExportProgress(1, 1);

                this.OnStatusMessage(string.Format("Sucessfully update geometry column ({0}) in table: {1}!",
                                                   geometryColumn,
                                                   tableName));
            }
            catch (Exception)
            {
                throw;
            }


            database.InsertEvent -= database_InsertEvent;
        }
コード例 #3
0
ファイル: SpatialiteExporter.cs プロジェクト: zenwalk/umbriel
        public int FindSRID(ISpatialReference sr, SpatialLiteDB database, string authname)
        {
            int srid = -1;

            srid = sr.FactoryCode;

            // string s = Umbriel.GIS.SpatialReferenceDotOrg.GetSpatialReference(sr.FactoryCode, Umbriel.GIS.Format.Proj4);

            srid = database.FindSRID(srid, authname);

            return(srid);
        }
コード例 #4
0
ファイル: SpatialiteExporter.cs プロジェクト: zenwalk/umbriel
 public int FindSRID(ISpatialReference sr, SpatialLiteDB database)
 {
     return(FindSRID(sr, database, "esri"));
 }
コード例 #5
0
ファイル: SpatialiteExporter.cs プロジェクト: zenwalk/umbriel
        public int FindSRID(ILayer layer, SpatialLiteDB database)
        {
            IGeoDataset g = (IGeoDataset)layer;

            return(this.FindSRID(g.SpatialReference, database));
        }