Bir postgis sorgusundan nasıl bir shapefile alabilirim?


44

Verilerim PostGIS veritabanında. Bir sorgudan bir shapefile oluşturmak istiyorum. Bunu nasıl yapabilirim?

Yanıtlar:


85

Bunu yapmanın önerilen yolu, PostGIS ile birlikte yüklenmesi gereken pgsql2shp yardımcı programını kullanmaktır . Sorguya geometri sütununu dahil etmeniz gerektiğini unutmayın.

$ pgsql2shp -f <path to output shapefile> -h <hostname> -u <username> -P <password> databasename "<query>"

Örnek ( qds_cnt.shpgeçerli dizinde yaratır ):

$ 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].

Tüm bir tabloyu bir shapefile olarak kaydetmek istiyorsanız, tablo adını sorgu olarak kullanın.

Ayrıca ogr2ogr yardımcı programını da kullanabilirsiniz , fakat ilk bağımlılık olmamalıdır. Eğer belirlenirseniz, eşdeğer komut şöyle olacaktır:

$ 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'"

Ayrıca bakınız


pgsql2shpBir görünümü bir shapefile dışa aktarmak mümkün mü ?
Ricardo Barros Lourenço

8

Rudivonstaden'in cevabı hakkında yorum yapacak yeterli itibar puanım yok, ancak büyük harflerle sql komutları yazmanın pgsql2shp için önemli olduğunu ekleyeceğim.

Örneğin, bu işe yaramaz:

$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "Select sp_count, geom from grid50_rsa where province = 'Gauteng'"

Oysa bu işe yarayacak:

$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"

7

Dışa aktarmak istediğiniz veri parçasına bağlı olarak, başka bir yol qgis veya benzer bir ürün kullanmaktır: burada postgis ile bir bağlantı açar ve ilgilendiğiniz verileri seçersiniz; sonra shapefile olarak kaydedersiniz ...

Otomatik olarak ve / veya büyük miktarda veriyi dışa aktarmak istiyorsanız, rudivonstaden uygun çözümler verdi!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.