Szukaj…


Uwagi

PostGIS to zestaw rozszerzeń bazy danych PostgreSQL. Za pomocą PostGIS możesz przechowywać dane geoprzestrzenne i wykonywać zapytania przestrzenne w bazie danych postgres.

W przeciwieństwie do domyślnych typów danych w normalnej bazie danych postgres, dane przestrzenne muszą być obsługiwane inaczej. Zapytania, które można wykonać w bazie danych przestrzennych, są zwykle definiowane przez obwiednie w 2 lub 3 wymiarach. Do przechowywania, indeksowania i obsługi tych typów danych postGIS wykorzystuje koncepcję o nazwie R-Trees , która nie jest częścią domyślnej instalacji postgres.

Dzięki bazie danych postGIS możesz:

  • przechowywać dane przestrzenne
  • wykonywać zapytania przestrzenne, aby uzyskać i wyodrębnić informacje (punkty, obszary).
  • zarządzać informacjami przestrzennymi i metadanymi w tabelach (takich jak: używany system odniesienia coorinate).
  • konwertuj geometrie z jednego układu współrzędnych na inny
  • porównaj geometrie i wyodrębnij właściwości (takie jak: długość krawędzi drogi lub budynku)
  • generować nowe geometrie od innych.

Wersje

Najnowsze wydania funkcji Oficjalna dokumentacja Data wydania
2.3.0 HTML , PDF 26.09.2016
2.2.0 HTML , PDF 07.10.2015
2.1.0 HTML , PDF 17.08.2013
2.0.0 HTML , PDF 2012-04-03
1.5.0 04.02.2010
1.4.0 2009-07-24
1.3.0 2007-08-09
1.2.0 2006-12-08
1.1.0 2005-12-21
1.0.0 19.04.2005

Instalacja za pomocą Menedżera pakietów

Łuk:

Dostępny jest oficjalny pakiet Pacman. Zainstaluj pakiet jako root, używając:

pacman -S postgis

OpenSuse:

Aby korzystać z repozytoriów openSuse dla aplikacji geoprzestrzennych, włącz Geo-repozytorium jako root:

zypper ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_[RELEASE]/ GEO 

gdzie [RELEASE] to oficjalny numer wydania Twojej dystrybucji Suse. Następnie możesz zainstalować postgis za pomocą:

zypper install postgis

Instalacja ze źródła (z Postgres 9.1 lub nowszą wersją)

Ten przewodnik jest wyraźnie przeznaczony dla PostgreSQL 9.1 lub nowszego na komputerach z systemem Linux. Wykorzystuje funkcję rozszerzeń postgres, która znacznie poprawi import rozszerzeń do istniejącej instalacji postgres. Jeśli musisz pracować ze starszą wersją postgres, zapoznaj się z oficjalnymi dokumentami .

Rozwiąż zależności

PostGIS to złożony projekt, który ma wiele zależności. Aby kontynuować procedurę ręcznej konfiguracji i kompilacji, musisz rozwiązać te zależności i zainstalować następujące pakiety ręcznie lub za pośrednictwem menedżerów pakietów.

Minimalne wymagania

  • PostgreSQL 9.1 lub nowszy. Ważne jest, aby zainstalować bazę danych w tym nagłówków serwera, zwykle w -packages dev pakietu kierownika swojego repozytorium.
  • Kompilator GNU C gcc .
  • Marka GNU. Aby zakończyć proces kompilacji.
  • Proj4 . Biblioteka projekcji do transformacji współrzędnych.
  • GEOS . Biblioteka geometrii, która implementuje opisy funkcji i proste geometrie. Wersja 3.5 lub nowsza jest zalecana w celu korzystania z nowszych funkcji, takich jak ST_ClipByBox2D i ST_Subdivide .
  • GDAL , wersja 1.9 lub wyższa. Biblioteka, która implementuje abstrakcyjne formaty danych dla danych geoprzestrzennych opartych na rastrze i wektorze.
  • LibXML2 , wersja 2.5 lub wyższa. Biblioteka do pracy z XML, XSLT i DTD.
  • JSON-C , wersja 0.9 lub wyższa. Biblioteka do tworzenia danych wyjściowych w formacie JSON

Wymagania opcjonalne

  • GTK (wymaga GTK + 2.0, 2.8+) do kompilacji shp2pgsql-gui.
  • SFCGAL , wersja 1.1 (lub wyższa) może być wykorzystana do zapewnienia dodatkowych zaawansowanych funkcji analizy 2D i 3D dla PostGIS.
  • PCRE . Biblioteka do dopasowywania wzorców wyrażeń regularnych przy użyciu składni Perl 5. Ta biblioteka jest potrzebna, jeśli chcesz współpracować z Adress Standizer .
  • CUnit . Narzędzie do testowania jednostkowego, potrzebne do testowania regresji.
  • DocBook (xsltproc) jest wymagany do tworzenia dokumentacji.
  • DBLatex jest wymagany do tworzenia dokumentacji w formacie PDF.
  • ImageMagick jest wymagany do generowania obrazów używanych w dokumentacji.

Zdobądź źródła

Aby uzyskać kod źródłowy, pobierz najnowszy plik tarball:

wget http://postgis.net/stuff/postgis-2.3.2dev.tar.gz
tar -xvzf postgis-2.3.2dev.tar.gz

lub skorzystaj z oficjalnego repozytorium SVN:

svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-2.3.2dev

Konfiguracja

Jeśli źródła uzyskałeś za pośrednictwem SVN, możesz przygotować skrypt konfiguracyjny za pomocą:

./autogen.sh

Aby skonfigurować proces kompilacji dla konkretnego komputera, uruchom w folderze projektu:

./configure

Istnieje kilka opcjonalnych parametrów kroku konfiguracji. Szczegółowe instrukcje znajdują się w oficjalnej dokumentacji , zwykle jest to opcjonalne i dotyczy tylko serwerów, które używają instalacji innych niż domyślne.

Budować

Po pomyślnym zakończeniu kroku konfiguracji zostanie utworzony plik makefile. Aby uruchomić proces kompilacji:

make

Ostatnim wyjściem powinno być:

"PostGIS was built successfully. Ready to install."

Od wersji 1.4.0 wszystkie funkcje mają komentarze wygenerowane z dokumentacji. Jeśli chcesz później zainstalować te komentarze w swoich przestrzennych bazach danych, uruchom polecenie, które wymaga docbook.

make comments

Instalacja

Zainstaluj wszystkie rozszerzenia za pomocą:

make install

Rozszerzenia PostGIS są budowane i instalowane automatycznie, jeśli używasz PostgreSQL 9.1 lub nowszego. Możesz zainstalować niezbędne rozszerzenia ręcznie, jeśli masz inną konfigurację.

W folderze projektu:

cd extensions
cd postgis
make clean
make
make install

cd ..
cd postgis_topology
make clean
make
make install

cd ..
cd postgis_sfcgal
make clean
make
make install

cd ..
cd address_standardizer
make clean
make
make install
make installcheck

cd ..
cd postgis_tiger_geocoder
make clean
make
make install
make installcheck

Jeśli chcesz ręcznie zainstalować rozszerzenia na innym komputerze, skopiuj następujące pliki z folderu extensions do folderu PostgreSQL/share/extension docelowego. Dla każdego rozszerzenia:

scp extensions/[EXTENSION]/sql/*.sql user@target:[POSTGIS_PATH]/share/extension

gdzie [EXTENSION] jest wybranym rozszerzeniem (postgis, postgis_topology, postgis_sfcgal, address_standardizer, postgis_tiger_geocoder), a [POSTGIS_PATH] to ścieżka instalacji PostGIS na komputerze docelowym.

Weryfikacja instalacji

Jeśli nie masz uruchomionej usługi bazy danych Postgres, najpierw skonfiguruj swoją bazę danych Postgres . Połącz się z bazą danych, używając:

su postgres -c psql

Aby sprawdzić, czy rozszerzenia są dostępne, uruchom następujące zapytania w sesji psql:

SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE 'postgis%' or name LIKE 'address%';

Dane wyjściowe powinny wyglądać następująco:

             name             | default_version | installed_version
------------------------------+-----------------+-------------------
 address_standardizer         | 2.3.2dev        | 2.3.2dev
 address_standardizer_data_us | 2.3.2dev        | 2.3.2dev
 postgis                      | 2.3.2dev        | 2.3.2dev
 postgis_sfcgal               | 2.3.2dev        |
 postgis_tiger_geocoder       | 2.3.2dev        | 2.3.2dev
 postgis_topology             | 2.3.2dev        |

(6 rows)

Aby przeprowadzić dokładny test poinstalacyjny, uruchom następujące polecenie w folderze projektu:

make check

Będzie to przebiegać przez różne kontrole i testy przy użyciu wygenerowanej biblioteki w stosunku do faktycznej bazy danych PostgreSQL.

Konfigurowanie geoprzestrzennej bazy danych

Aby utworzyć nową pustą bazę danych, uruchom jako użytkownik postgres:

createdb [yourdatabase]

Połącz się z bazą danych za pomocą sesji psql:

psql -d [yourdatabase]

W sesji psql:

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;

aby utworzyć niezbędne rozszerzenia geoprzestrzenne. Gdy to zrobisz, baza danych jest bazą danych z obsługą geoprzestrzenną i jest gotowa do użycia.

Geoprzestrzenny „Hello World”

W tym przykładzie skonfigurujemy bazę danych geoprzestrzennych, zaimportujemy dane z 2 różnych źródeł i wyświetlimy wyniki w aplikacji o nazwie QGIS. Ten przewodnik jest napisany wprost dla maszyn linuxowych, jeśli działasz na innej platformie, niektóre polecenia lub ścieżki mogą nie działać zgodnie z oczekiwaniami.

W celu przeglądania importowanych danych korzystamy z aplikacji o nazwie QGIS . Jeśli nie masz tej aplikacji, zainstaluj ją najpierw , jeśli chcesz użyć innej przeglądarki lub aplikacji geograficznej (np. ArcGIS), możesz pominąć instalację QGIS.

Naszymi źródłami będą dystrykty zgromadzeń stanu Nowy Jork i baza danych map ulic LION w Nowym Jorku . Pobierz odpowiednie pliki z połączonych lokalizacji. Powinieneś także rzucić okiem na sekcję Metadane w materiale, ponieważ zawiera ona informacje o systemie odniesienia za pomocą współrzędnych, z którego korzystają te pliki.

Aby rozpocząć, utwórz folder roboczy „nycgis”, skopiuj pobrane pliki do lokalizacji i rozpakuj archiwa.

mkdir nycgis
cd nycgis
cp ~/Downloads/nyad_16d.zip .
unzip ~/Downloads/nyad_16d.zip
cp ~/Downloads/nylion_16d.zip .
unzip  ~/Downloads/nylion_16d.zip

W folderze „nycgis” powinieneś teraz mieć 2 foldery: „nyad_16d”, „lion” z kilkoma plikami.

Podczas pracy z danymi geograficznymi niezwykle ważna jest znajomość układu odniesienia za pomocą współrzędnych (CRS) danych źródłowych i ostatecznych danych wyjściowych. W sekcjach Metadanych powiązanych lokalizacji ( Metadata: Assembly Districts , Metadata: LION Database ) znajdziesz, że CRS dla obu plików to EPSG: 2263, układ współrzędnych używany w odniesieniu do północno-wschodnich Stanów Zjednoczonych.

Załóżmy, że chcemy użyć innego CRS w naszej bazie danych. Może to mieć różne przyczyny, na przykład możemy chcieć współpracować z internetową aplikacją geo w bazie danych. Typowym CRS dla tego rodzaju aplikacji jest WGS: 84 (EPSG: 4326).

Do konwersji układów współrzędnych używamy narzędzia o nazwie ogr2ogr które jest częścią pakietu GDAL. W folderze roboczym najpierw tworzymy 2 foldery reprezentujące ponownie rzutowane dane, a następnie konwertujemy nasze dane.

mkdir nyad_16d_proj_4326
ogr2ogr -f "ESRI Shapefile" ./nyad_16d_proj_4326/nyad_4326.shp ./nyad_16d/nyad_16d.shp -s_srs EPSG:2263 -t_srs EPSG:4326

mkdir nylion_16d_proj_4326
ogr2ogr -f "ESRI Shapefile" ./nylion_16d_proj_4326/ny_str_4326.shp ./nylion_16d/lion/lion.gdb/a0000000d.gdbtable -s_srs EPSG:2263 -t_srs EPSG:4326

Zauważ, że do naszych celów używamy tylko pliku o nazwie: „a0000000d.gdbtable” z bazy danych LION. Składnia ogr2ogr ogr2ogr jest następująca:

ogr2ogr -f [output-format] [output-file] [input-file] -s_srs [source crs] -t_srs [target crs]

Mamy teraz 2 pliki kształtu, rzutowane we właściwym CRS. Aby korzystać z danych w naszej bazie danych, musimy przekonwertować pliki shapefile na sql-statemens. Do tego używamy narzędzia o nazwie shp2pgsql . W katalogu roboczym uruchom następujące polecenia:

shp2pgsql ./nyad_16d_proj_4326/nyad_4326.shp > nyad_4326.sql
shp2pgsql ./nylion_16d_proj_4326/ny_str_4326.shp > ny_streets_4326.sql

Pliki nyad_4326.sql i ny_streets_4326.sql są teraz gotowe do użycia w Postgis. Aby kontynuować i zaimportować dane, utwórz bazę danych włączoną przestrzennie.

sudo su - postgres
createdb nycgis
psql -d nycgis

W sesji psql uruchom:

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;

Zakończ sesje psql i postgres-user za pomocą (CTRL + D). I zaimportuj pliki za pomocą:

psql -f nyad_4326.sql -d nycgis
psql -f ny_streets_4326.sql -d nycgis

Baza danych nycgis ma teraz 2 tabele, w których ponownie rzutowane źródła zostały pomyślnie zaimportowane.

Aby to sprawdzić: otwórz QGIS

  1. użyj opcji Warstwa > Dodaj warstwę > Warstwa PostGIS
  2. połącz się z bazą danych
  3. wybierz swoje stoły
  4. (opcjonalnie) ustaw styl nowo tworzonych warstw.

Zrzut ekranu QGIS

Et voilà: Masz teraz włączoną przestrzennie bazę danych z importowanymi, ponownie rzutowanymi geodanymi.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow