Przejdź do głównej zawartości

Eksport do PostgreSQL

Mapit GIS potrafi eksportować warstwy obiektów bezpośrednio do bazy PostgreSQL z rozszerzeniem PostGIS. Eksport korzysta z bezpośredniego połączenia JDBC z urządzenia - nie jest potrzebny żaden pośrednik w chmurze ani serwer proxy.

Przydaje się to do przesyłania danych zebranych w terenie do centralnej bazy na potrzeby analiz, raportowania lub integracji z korporacyjnymi procesami GIS.

Wymagania wstępne​

Przed eksportem upewnij się, że:

  1. Serwer PostgreSQL działa i jest osiągalny z sieci urządzenia (Wi-Fi, dane komórkowe lub VPN).
  2. Rozszerzenie PostGIS jest zainstalowane w docelowej bazie (CREATE EXTENSION IF NOT EXISTS postgis;).
  3. Dostęp sieciowy pozwala urządzeniu połączyć się bezpośrednio z hostem i portem bazy danych.
  4. Dane połączenia są skonfigurowane w aplikacji (patrz niżej).
wskazówka

Od wersji 3.0.4 aplikacja łączy się z PostgreSQL bezpośrednio przez JDBC. Nie trzeba dodawać adresu IP serwera pośredniczącego do listy dozwolonych. Połączenie nawiązywane jest z samego urządzenia.

Konfiguracja połączenia​

  1. Otwórz Ustawienia z menu głównego.
  2. Przejdź do Połączenia zdalne → Ustawienia PostgreSQL.
  3. Podaj dane połączenia:
UstawienieOpisPrzykład
HostNazwa hosta lub adres IP serwera bazy danychdb.example.com lub 192.168.1.50
PortPort PostgreSQL5432 (domyślny)
Nazwa użytkownikaUżytkownik bazy danychmapit_user
HasłoHasło do bazy danych
Nazwa bazy danychDocelowa bazafield_data
  1. Skorzystaj z przycisku Testuj połączenie, aby sprawdzić łączność przed wyjściem w teren.
uwaga

Dane logowania przechowywane są lokalnie na urządzeniu. Zadbaj o to, aby użytkownik bazy danych miał wyłącznie minimalne niezbędne uprawnienia - zwykle CREATE, INSERT, SELECT i DROP w docelowym schemacie.

Eksport warstwy​

  1. Otwórz ekran Warstwy.
  2. Przytrzymaj warstwę, którą chcesz wyeksportować.
  3. Wybierz Eksportuj z menu kontekstowego.
  4. W panelu miejsc docelowych dotknij Eksport do PostgreSQL.

Wybierz tryb eksportu​

Dolny panel przedstawia dwie opcje:

TrybZachowanie
NadpisanieUsuwa istniejącą tabelę (jeśli istnieje) i tworzy nową z eksportowanymi danymi
DopisanieDodaje obiekty do istniejącej tabeli albo tworzy ją, jeśli nie istnieje
ważne

Nadpisanie trwale usuwa wszystkie istniejące dane w tabeli docelowej. Zachowaj ostrożność w środowiskach produkcyjnych.

wskazówka

Każdą z tych opcji można ukryć w Ustawienia → Ustawienia eksportu, jeśli chcesz zapobiec przypadkowemu nadpisaniu albo ograniczyć pracę wyłącznie do dopisywania.

Postęp eksportu​

Okno postępu pokazuje liczbę wyeksportowanych obiektów. Obiekty wysyłane są partiami po 500 wierszy przy użyciu wielowierszowych poleceń INSERT, co poprawia wydajność.

Po zakończeniu komunikat potwierdzający pokazuje nazwę tabeli i łączną liczbę wyeksportowanych obiektów.

Struktura tabeli​

Wyeksportowana tabela PostgreSQL ma następującą strukturę:

  • Tabela tworzona jest w schemacie public pod nazwą warstwy.
  • Dodawana jest kolumna geometrii obsługiwana przez PostGIS, z właściwym typem geometrii i SRID.
  • Wszystkie kolumny atrybutowe warstwy GeoPackage są mapowane na typy danych PostgreSQL:
Typ w GeoPackageTyp w PostgreSQL
TEXTTEXT
INTEGERBIGINT
REAL / DOUBLEDOUBLE PRECISION
BOOLEANBOOLEAN
DATEDATE
DATETIMETIMESTAMP
BLOBBYTEA

Obsługa geometrii​

  • Geometrie proste (punkt, linia, poligon) są automatycznie zamieniane na odpowiedniki wieloczęściowe (MultiPoint, MultiLineString, MultiPolygon) dla zachowania spójności.
  • Jeśli warstwa źródłowa ma współrzędne Z, geometria tworzona jest z użyciem ST_Force3DZ.
  • Geometrie wstawiane są przy użyciu ST_GeomFromWKB z odpowiednim SRID.
  • SRID wynika z układu współrzędnych warstwy (domyślnie 4326, jeśli nie ustawiono).

Obsługa błędów​

SytuacjaZachowanie
Dane połączenia nieskonfigurowaneEksport zostaje odrzucony z komunikatem o konieczności skonfigurowania połączenia z bazą
Sieć nieosiągalna lub połączenie odrzuconeEksport kończy się błędem połączenia
Brak uprawnień w bazie danychEksport kończy się błędem uwierzytelnienia lub uprawnień
Nieprawidłowa geometria obiektuObiekt zostaje pominięty; eksport jest kontynuowany

Przykładowy przebieg pracy​

Typowa droga od terenu do bazy danych:

  1. W terenie: zbieraj obiekty w Mapit GIS z zewnętrznym odbiornikiem GNSS dla wysokiej dokładności.
  2. W biurze (lub przez dane komórkowe): otwórz ekran warstw, przytrzymaj warstwę i wyeksportuj ją do PostgreSQL w trybie dopisania.
  3. Na serwerze: przeglądaj dane w QGIS, pgAdmin lub swoich narzędziach raportowych. Tabela zawiera pełną geometrię i wszystkie atrybuty.
-- Przykład: podgląd wyeksportowanych danych w PostgreSQL
SELECT fid, name, ST_AsText(geometry) FROM tree_survey LIMIT 10;

-- Przykład: liczba obiektów według stanu
SELECT overall_condition, COUNT(*) FROM tree_survey GROUP BY overall_condition;
wskazówka

Przy cyklicznych eksportach tej samej warstwy używaj trybu dopisania i dodaj do schematu warstwy kolumnę z datą, aby rozróżniać kolejne sesje pomiarowe.

wskazówka

Jeśli łączysz się przez internet, rozważ użycie VPN lub tunelu SSH w celu zabezpieczenia połączenia z bazą. Połączenie JDBC nie jest domyślnie szyfrowane, chyba że Twój serwer PostgreSQL jest skonfigurowany z obsługą SSL.

notatka

Eksport do PostgreSQL wymaga uprawnienia Import/eksport, dostępnego w planach Pro i Pro+.