PostGISデータベースへのシェープファイルの追加


30

Postgresqlデータベースを作成できた後、実行しました。

createlang plpgsql geospecies
psql -d geospecies -f postgis.sql
psql -d geospecies -f spatial_ref_sys.sql

シェイプファイルを直接インポートできますか?これは正しいコマンドでしょうか、

ogr2ogr -f PostgreSQL PG:"host=server_ip user=username dbname=dbname password=password" yourshapefile.shp;

データベースを構成する方法がわかりません。テーブルは必要ありませんか?最終的には大量のシェープファイルを追加する必要があるので、それを行うコマンドはありますか?

回答:


49

試してみてくださいshp2pgsql。基本的な構文は次のとおりです。

shp2pgsql -s SRID SHAPEFILE.shp SCHEMA.TABLE | psql -hホスト-dデータベース-Uユーザー

私はいつもこの見つけるチートシートからhttp://www.bostongis.com便利に。少し下にスクロールすると、データのロード方法に関する簡単な例が見つかります。

それが役に立てば幸い。


しかし、私はテーブルを持っていません。どのテーブルとスキーマを作成する必要がありますか?
-Sam007

1
あなたが見て取ればチートシート(-d|-a|-c|-p)テーブルのためのフラグです。何も指定しなかった場合-c、デフォルトで選択されます(新しいテーブルを作成し、それを設定します)。に関してはSRID、私は知りません-それはあなたのデータの投影に依存します。.projシェープファイルに付属のファイルがある場合は、prj2epsg.org / searchその投影を確認できます。それが役立つことを願っています。

返信@Haziqに感謝します。私はどこが-c来るのかだけ混乱していますか?私が試したshp2pgsql -s 4326 /var/www/geo/shapefile/PimaPine.shp -c public.Pima | psql -h localhost -d geospecies -U smaranhが、私はエラーになっていますdpaste.com/834563
Sam007

-c-s 4326、前に行くべきだと思い/var/www/geo/shapefile/PimaPine.shpます..構文はshp2pgsql [OPTIONS] shapefile [schema.]tableです。-cそれでもエラーの位置の変更は影響しますか?

いいえ、まだ同じエラーです。これにロールバック
questions / 41807 /

4

ああ!まだコメントできません!

Haziqが投稿したのは、それを行う正しいコマンドラインの方法です。

TABLEは名前を付けたいものであり、クエリから呼び出すときに使用する名前になります。インポート時にテーブルが生成されます。

私のように怠け者になったら、QGISプラグインとして利用できるすばらしいSPIT(Shapefile to PostGIS Import Tool)を使用して、すべてのシェープファイルを今すぐインポートします。以前にOpenGeoを使用していたと述べたように、QuantumGISを使用していると仮定します。


1
問題は、GUIがないことです。Ubuntu Serverをリモートで操作しています。
-Sam007

SPITはリモートで動作します。私は仕事から自宅のDBまでずっとやっています。psqlでログインするときと同じように、接続情報を入力するだけです。
RomaH

実行方法
-Sam007

さて、ローカルshpファイルを取得して、リモートサーバーに配置していると想定していました。QGISを起動し、ローカルマシンでSPITプラグインを使用し、リモートサーバーに接続してアップロードします。
RomaH

すべての私のSHPファイルサーバー上にある
Sam007
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.