PostGIS - C# を使用して PostgreSQL データベースの GIS レイヤーを操作する
Contents
[
Hide
]
PostgreSQL (PostGIS 拡張機能) は、GIS ソフトウェアの中で最も広く使用されているデータベースの 1 つです。Aspose.GIS を使用すると、PostgreSQL データベースを操作できます。
PostGis データベース内のレイヤーを反復処理する
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
// First, we create the connection to the PostgreSQL with Npgsql library (https://www.nuget.org/packages/Npgsql/) | |
// Then, we pass this connection to Dataset.Open method in order to access tables in the PostgreSQL. | |
using (var connection = new NpgsqlConnection(postgreSqlConnectionString)) | |
{ | |
connection.Open(); | |
using (var ds = Dataset.Open(connection, Drivers.PostGis)) | |
{ | |
// Only spatial tables are exported as layers, so the following code will list all tables | |
// that have geometry column. | |
for (int i = 0; i < ds.LayersCount; ++i) | |
{ | |
Console.WriteLine(ds.GetLayerName(i)); | |
} | |
} | |
} |
PostGis データベースに新しいレイヤーを追加する
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
// First, we create the connection to the PostgreSQL with Npgsql library (https://www.nuget.org/packages/Npgsql/) | |
using (var connection = new NpgsqlConnection(postgreSqlConnectionString)) | |
{ | |
connection.Open(); | |
// Then, we pass this connection to Dataset.Open method in order to access tables in the PostgreSQL. | |
using (var ds = Dataset.Open(connection, Drivers.PostGis)) | |
{ | |
// create table with the name "features_table" and fill it with data. | |
using (var layer = ds.CreateLayer("features_table")) | |
{ | |
layer.Attributes.Add(new FeatureAttribute("name", AttributeDataType.String) { Width = 50 }); | |
var feature = layer.ConstructFeature(); | |
feature.SetValue("name", "Name1"); | |
feature.Geometry = Geometry.FromText("POINT (10 20 30)"); | |
layer.Add(feature); | |
feature = layer.ConstructFeature(); | |
feature.SetValue("name", "Name2"); | |
feature.Geometry = Geometry.FromText("POINT (-10 -20 -30)"); | |
layer.Add(feature); | |
} | |
} | |
} |
PostGis データベースからレイヤーをファイル形式にエクスポートする
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
var outputPath = Path.Combine(RunExamples.GetDataDir(), "postgres_out.shp"); | |
// First, we create the connection to the PostgreSQL with Npgsql library (https://www.nuget.org/packages/Npgsql/) | |
// Then, we pass this connection to Dataset.Open method in order to access tables in the PostgreSQL. | |
using (var connection = new NpgsqlConnection(postgreSqlConnectionString)) | |
{ | |
connection.Open(); | |
using (var ds = Dataset.Open(connection, Drivers.PostGis)) | |
{ | |
// open table with the name "features_table" in Postgres database and save it to the shapefile. | |
using (var table = ds.OpenLayer("features_table")) | |
{ | |
table.SaveTo(outputPath, Drivers.Shapefile); | |
} | |
} | |
} |