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.