Làm thế nào tôi có thể nhận được một shapefile từ một truy vấn postgis?


44

Dữ liệu của tôi nằm trong cơ sở dữ liệu PostGIS. Tôi muốn tạo một shapefile từ một truy vấn. Làm thế nào tôi có thể làm điều đó?

Câu trả lời:


86

Cách được đề xuất để thực hiện việc này là sử dụng tiện ích pssql2shp , được cài đặt với PostGIS. Lưu ý rằng bạn phải bao gồm cột hình học trong truy vấn.

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

Ví dụ (tạo qds_cnt.shptrong thư mục hiện tại):

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

Nếu bạn muốn lưu toàn bộ bảng dưới dạng shapefile, chỉ cần sử dụng tên bảng làm truy vấn.

Bạn cũng có thể sử dụng tiện ích ogr2ogr , nhưng nó có nhiều phụ thuộc hơn nên không phải là tùy chọn đầu tiên. Nếu bạn quyết tâm, lệnh tương đương sẽ là:

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

Xem thêm


Có thể sử dụng pgsql2shpđể xuất một khung nhìn sang một shapefile?
Ricardo Barros Lourenço

8

Tôi không có đủ điểm danh tiếng để bình luận về câu trả lời của rudivonstaden nhưng tôi sẽ thêm rằng việc viết các lệnh sql bằng chữ in hoa quan trọng đối với pssql2shp.

Ví dụ, điều này sẽ không hoạt động:

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

trong khi điều này sẽ làm việc:

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

7

Tùy thuộc vào phần dữ liệu bạn muốn xuất, một cách khác là sử dụng qgis hoặc một sản phẩm tương tự: ở đó bạn mở một kết nối ot postgis và chọn dữ liệu bạn quan tâm; sau đó bạn lưu dưới dạng shapefile ...

Nếu bạn muốn xuất tự động và / hoặc phần lớn dữ liệu, rudivonstaden đã đưa ra giải pháp thích hợp!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.