¿Importando .shp a PostgreSQL?


14

Quiero importar un archivo shp a postgreSQL. Primero creo un archivo sql y luego ejecuto PostgreSQL. Para crear un archivo sql, ejecuto este comando en Windows cmd:

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

y luego ejecuta:

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

pero el resultado es:

psql: worldcountries.sql: 21: ERROR: la función addGeometrycolumn (desconocido, desconocido, desconocido, desconocido, desconocido, entero) no existe

Respuestas:


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

Parece que PostGIS aún no está instalado. PostGIS es una extensión de Postgres que permite el uso de archivos geográficos.

Instálelo y su importación funcionará bien.


3
Y el comando es "CREATE EXTENSION postgis;"postgis.net/docs/… .
user30184

1
@ user30184 Absolutamente correcto, pero tenga en cuenta que esto supone PostgreSQL 9.1 o superior. (En mi opinión, hay muy pocas razones para usar algo más antiguo)
Jpmc26


1

Puede usar el complemento de importación incorporado que se instala cuando instala la extensión PostGis en PostgreSQL. Puede encontrarlo en Complementos en el menú y se llama PostGIS Shapefile y DBF loader.

mira este video de youtube como ejemplo


0

Tienes una proyección diferente en tu psql; y no es necesario tener una proyección. ¿Hay un esquema al que desea agregar el archivo de forma?

Esto debería funcionar:

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

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

3
-ppara psqlle dice el puerto del servidor, no la proyección. La proyección se incrusta en el script SQL. Vea el buen manual para psqlel comportamiento de. En este caso, el puerto que especifica el OP no es el puerto predeterminado, por lo que es obligatorio. También generalmente recomendaría no almacenar una forma sin una proyección. Esto limita su capacidad de cambiar las proyecciones, lo que puede ser útil para obtener cálculos más precisos.
jpmc26
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.