.shpをPostgreSQLにインポートしますか?


14

shpファイルをpostgreSQLにインポートしたい。最初にsqlファイルを作成してから、PostgreSQLを実行します。SQLファイルを作成するには、Windows cmdで次のコマンドを実行します。

shp2pgsql -s 4326 worldCountries.shp worldcountries postgres > worldcountries.sql

次に実行します:

psql -d postgres -U postgres -p 4321 -f worldcountries.sql

しかし結果は:

psql:worldcountries.sql:21:エラー:関数addGeometrycolumn(unknown、unknown、unknown、unknown、unknown、integer)は存在しません

回答:


13
ERROR: **function addGeometrycolumn**(unknown, unknown, unknown, unknown,unknown, integer) does not exist

PostGISはまだインストールされていないようです。PostGISはPostgresの拡張機能であり、地理ファイルを使用できます。

それをインストールすると、インポートは正常に機能します。


3
そして、コマンドは"CREATE EXTENSION postgis;"postgis.net/docs/…です。
user30184 14

1
@ user30184間違いなく正しいですが、これはPostgreSQL 9.1以降を想定していることに注意してください。(私の意見では、古いものを使用する理由はほとんどありません。)
jpmc26 14


1

PostGis拡張機能をPostgreSQLにインストールするときにインストールされるビルドインインポートプラグインを使用できます。メニューの[プラグイン]の下にあり、PostGISシェイプファイルおよびDBFローダーと呼ばれます。

例としてこのYouTubeビデオを見る


0

psqlに異なる投影法があります。また、投影する必要はありません。シェープファイルを追加するスキーマはありますか?

これは動作するはずです:

shp2pgsql -s 4326 -I worldcountries.shp schema.worldcountries > dr_worldcountries.sql

psql -f worldcountries.sql -h [host] -d [database] -U postgres

3
-pfor psqlはサーバーのポートであり、プロジェクションではありません。プロジェクションはSQLスクリプトに埋め込まれます。の動作については、細かいマニュアルを参照してくださいpsql。この場合、OPが指定するポートはデフォルトのポートではないため、必須です。また、一般に、突起のない形状を保存しないことをお勧めします。これにより、予測を変更する能力が制限され、より正確な計算を得るのに役立ちます。
jpmc26 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.