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+.