Dodawanie plików kształtów do bazy danych PostGIS

30

Byłem w stanie stworzyć bazę danych Postgresql, a następnie wykonałem,

createlang plpgsql geospecies
psql -d geospecies -f postgis.sql
psql -d geospecies -f spatial_ref_sys.sql

Czy mogę teraz bezpośrednio zaimportować pliki kształtów? Czy to byłoby właściwe polecenie,

ogr2ogr -f PostgreSQL PG:"host=server_ip user=username dbname=dbname password=password" yourshapefile.shp;

Nie jestem pewien, jak ustrukturyzować bazę danych, czy nie potrzebuje tabeli? W końcu będę musiał dodać sporo plików kształtów, więc czy jest na to polecenie?

Sam007
źródło

Odpowiedzi:

49

Spróbować shp2pgsql. Podstawowa składnia jest następująca:

shp2pgsql -s SRID SHAPEFILE.shp SCHEMA.TABLE | psql -h HOST -d DATABASE -U USER

Zawsze uważam ten ściągawki ze strony http://www.bostongis.com za użyteczny. Jeśli przewiniesz trochę w dół, znajdziesz proste przykłady ładowania danych.

Mam nadzieję, że to pomoże.

Stophface
źródło
Ale nie mam stolika. Jaki stół i schemat powinienem utworzyć?
Sam007,
1
Jeśli spojrzysz na ściągę , (-d|-a|-c|-p)są to flagi do tabel. Jeśli nic nie podałeś, -cdomyślnie wybierze (tworzy nową tabelę i zapełnia ją). Co do SRIDtego, nie wiem - to zależy od projekcji twoich danych. Jeśli masz .projplik dostarczony z plikami kształtów, możesz sprawdzić jego projekcję na stronie prj2epsg.org/search . Mam nadzieję, że to pomoże ..
dzięki za odpowiedź @Haziq. Jestem tylko zdezorientowany, skąd -cpochodzi? Próbowałem, shp2pgsql -s 4326 /var/www/geo/shapefile/PimaPine.shp -c public.Pima | psql -h localhost -d geospecies -U smaranhale pojawia się
Sam007
Myślę, że -cpowinno być później -s 4326, a wcześniej /var/www/geo/shapefile/PimaPine.shp… Składnia jest shp2pgsql [OPTIONS] shapefile [schema.]table. Czy zmiana położenia -cnadal skutkuje błędem?
Nie nadal ten sam błąd. Być może spotka się
Sam007,
4

Ahh! Nie mogę jeszcze komentować!

To, co opublikował Haziq, byłoby właściwym sposobem na wykonanie polecenia Sam.

TABELA to tylko to, co chcesz nazwać i będzie to nazwa używana podczas wywoływania go z zapytania, tabela zostanie wygenerowana podczas importu.

Jeśli staniesz się leniwy jak ja, korzystam z niesamowitego SPIT (Shapefile to PostGIS Import Tool) dostępnego jako wtyczka QGIS do importowania teraz wszystkich moich plików kształtów. Zakładając, że używasz QuantumGIS, tak jak powiedziałeś, że korzystasz z OpenGeo wcześniej.

RomaH
źródło
1
Problem w tym, że nie mam GUI. Pracuję zdalnie na Ubuntu Server.
Sam007,
SPIT będzie działał zdalnie, cały czas robię od pracy do mojej domowej bazy danych, wystarczy wypełnić informacje o połączeniu, tak jak przy logowaniu na psql.
RomaH
Jak to wykonać
Sam007,
Zakładałem, że bierzesz lokalne pliki shp i umieszczasz je na zdalnym serwerze. Uruchamiasz QGIS i używasz wtyczki SPIT na komputerze lokalnym, podłączasz serwer zdalny i ładujesz.
RomaH
Wszystkie moje pliki SHP są na serwerze
Sam007,