私のデータはPostGISデータベースにあります。クエリからシェープファイルを生成したいと思います。どうやってやるの?
私のデータはPostGISデータベースにあります。クエリからシェープファイルを生成したいと思います。どうやってやるの?
回答:
これを行うための推奨される方法は、pgsql2shpユーティリティを使用することです。これは、PostGISとともにインストールする必要があります。クエリにジオメトリ列を含める必要があることに注意してください。
$ pgsql2shp -f <path to output shapefile> -h <hostname> -u <username> -P <password> databasename "<query>"
例(qds_cnt.shp
現在のディレクトリに作成):
$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"
Initializing...
Done (postgis major version: 2).
Output shape: Polygon
Dumping: XXXXXXXXXXXXXXXXXXXX [1947 rows].
テーブル全体をシェープファイルとして保存する場合は、テーブル名をクエリとして使用します。
ogr2ogrユーティリティを使用することもできますが、依存関係が多いため、最初のオプションではありません。決定した場合、同等のコマンドは次のようになります。
$ ogr2ogr -f "ESRI Shapefile" qds_cnt.shp PG:"host=localhost user=postgres dbname=gisdb password=password" -sql "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"
こちらもご覧ください
rudivonstadenの答えにコメントするのに十分な評判ポイントはありませんが、大文字でのsqlコマンドの記述はpgsql2shpにとって重要であると付け加えます。
たとえば、これは機能しません。
$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "Select sp_count, geom from grid50_rsa where province = 'Gauteng'"
これは動作しますが:
$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"
pgsql2shp
ビューをシェープファイルにエクスポートすることは可能ですか?