Importare .shp in PostgreSQL?


14

Voglio importare un file shp in postgreSQL. Per prima cosa creo il file sql e quindi eseguo PostgreSQL. Per creare il file sql, eseguo questo comando in Windows cmd:

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

e quindi eseguire:

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

ma il risultato è:

psql: worldcountries.sql: 21: ERRORE: funzione addGeometrycolumn (sconosciuto, sconosciuto, sconosciuto, sconosciuto, sconosciuto, intero) non esiste

Risposte:


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

Sembra che PostGIS non sia ancora installato. PostGIS è un'estensione di Postgres che consente l'uso di file geografici.

Installalo e la tua importazione funzionerà bene.


3
E il comando è "CREATE EXTENSION postgis;"postgis.net/docs/… .
user30184,

1
@ user30184 Assolutamente corretto, ma si noti che ciò presuppone PostgreSQL 9.1 o versioni successive. (Secondo me, ci sono pochissime ragioni per usare qualcosa di più vecchio.)
jpmc26,


1

Puoi usare il plug-in di importazione incorporato che viene installato quando installi l'estensione PostGis in PostgreSQL. Puoi trovarlo sotto Plugin nel menu e si chiama PostGIS Shapefile e Caricatore DBF

guarda questo video di YouTube come esempio


0

Hai una proiezione diversa nel tuo psql; e non è necessaria una proiezione. C'è uno schema a cui vuoi aggiungere il file di forma?

Questo dovrebbe funzionare:

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

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

3
-pper psqldice la porta del server, non la proiezione. La proiezione viene incorporata nello script SQL. Vedere il manuale per psqlil comportamento. In questo caso, la porta specificata dall'OP non è la porta predefinita, quindi è necessaria. Vorrei anche sconsigliare di conservare una forma senza una proiezione. Ciò limita la capacità di modificare le proiezioni, che può essere utile per ottenere calcoli più accurati.
jpmc26,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.