Nhập .shp vào PostgreSQL?


13

Tôi muốn nhập tệp shp vào postgreSQL. Đầu tiên tôi tạo tập tin sql và sau đó chạy PostgreSQL. Để tạo tập tin sql, tôi chạy lệnh này trong windows cmd:

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

và sau đó chạy:

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

nhưng kết quả là:

psql: worldcountries.sql: 21: ERROR: hàm addGeometrycolumn (chưa biết, chưa biết, chưa biết, chưa biết, chưa biết, số nguyên) không tồn tại

Câu trả lời:


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

Có vẻ như PostGIS chưa được cài đặt. PostGIS là một phần mở rộng của Postgres cho phép sử dụng các tệp địa lý.

Cài đặt nó và nhập khẩu của bạn sẽ hoạt động tốt.


3
Và lệnh là "CREATE EXTENSION postgis;"postgis.net/docs/ đá .
dùng49584

1
@ user30184 Hoàn toàn chính xác, nhưng xin lưu ý rằng điều này giả định PostgreSQL 9.1 trở lên. (Theo tôi, có rất ít lý do để sử dụng bất cứ thứ gì cũ hơn.)
jpmc26


1

Bạn có thể sử dụng plugin xây dựng nhập khẩu được cài đặt khi bạn cài đặt tiện ích mở rộng PostGis trong PostgreQuery Bạn có thể tìm thấy nó trong Plugin trong menu và được gọi là trình tải Shapefile và DBF của PostGIS

xem video youtube này làm ví dụ


0

Bạn có một phép chiếu khác nhau trong psql của bạn; và có một phép chiếu là không cần thiết. Có một lược đồ bạn muốn thêm tập tin hình dạng vào?

Điều này sẽ làm việc:

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

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

3
-pcho psqlnó biết cổng của máy chủ, không phải là hình chiếu. Phép chiếu trở thành nhúng trong tập lệnh SQL. Xem hướng dẫn sử dụng tốt cho psqlhành vi của. Trong trường hợp này, cổng mà OP chỉ định không phải là cổng mặc định, do đó, nó là bắt buộc. Tôi cũng thường khuyên không nên lưu trữ một hình dạng mà không cần chiếu. Điều này giới hạn khả năng của bạn để thay đổi các phép chiếu, có thể hữu ích để có được các phép tính chính xác hơn.
jpmc26
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.