>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
TypeScript

GeoLibre: jak uruchomić GIS w przeglądarce, Jupyter i na pulpicie bez instalowania ciężkiego oprogramowania

Jeśli kiedykolwiek pracowałeś z danymi przestrzennymi, znasz standardową sytuację. Chcesz szybko podejrzeć GeoJSON lub wykonać kilka zapytań przestrzennych na pliku Parquet — i otwierasz QGIS. Aplikacja się ładuje, pobiera moduły, a na podstawową wizualizację kończysz zużywając kilka gigabajtów RAM i czasu na konfigurowanie warstw.

Deweloperzy z społeczności OpenGeos postanowili podejść do problemu od innej strony. Stworzyli GeoLibre — lekką platformę do pracy z danymi geoprzestrzennymi, która działa bezpośrednio w przeglądarce, wewnątrz notebooków Jupyter i jako samodzielna aplikacja desktopowa.

Co kryje się pod maską

Architektura projektu łączy kilka nowoczesnych technologii webowych. Frontend jest zbudowany w React i TypeScript. MapLibre GL JS oraz deck.gl odpowiadają za renderowanie map 2D i 3D.

Najciekawsza część dzieje się podczas przetwarzania danych. Zamiast wysyłać ciężkie pliki geoprzestrzenne na zewnętrzne serwery, GeoLibre wykorzystuje DuckDB-WASM z rozszerzeniem przestrzennym. Plik jest przetwarzany po stronie klienta. Przeciągasz plik GeoJSON lub Parquet do okna przeglądarki, a lokalne DuckDB wykonuje zapytania SQL bezpośrednio w pamięci Twojego urządzenia.

Wersje desktopowe i mobilne są zbudowane przy użyciu Tauri v2. Przekłada się to na kompaktowy rozmiar dystrybucji i niskie zużycie zasobów w porównaniu z tradycyjnymi rozwiązaniami opartymi na Electron.

Praktyczne możliwości

Narzędzie obejmuje większość codziennych zadań dla geoanalityków i deweloperów.

Lokalny Spatial SQL w przeglądarce

DuckDB-WASM umożliwia pisanie zapytań spatial SQL bez uruchamiania PostgreSQL z PostGIS. Możesz wykonywać operacje łączenia warstw, obliczać strefy buforowe i agregować dane bezpośrednio w interfejsie aplikacji.

Praca z danymi 3D i skalami czasowymi

GeoLibre obsługuje pracę z 3D Tiles i obiektami wektorowymi o objętości. Wyraźnym przykładem z materiałów demo projektu jest mapa 3D budynków Manhattanu.

Demo 3D Tiles w GeoLibre

Każdy budynek jest wyekstrudowany według wysokości i pokolorowany na podstawie roku budowy. Za pomocą wbudowanego suwaka czasu możesz odtworzyć animację i obejrzeć, jak miasto było zabudowywane od 1850 do 2025 roku.

Mapa 3D budynków Manhattanu

Mapowanie innych planet

Twórcy projektu nie ograniczyli się do Ziemi. Platforma zawiera mapy bazowe z OpenPlanetaryMap i USGS Astrogeology.

Widok Marsa w GeoLibre

Możesz przełączyć się na Księżyc, Marsa, Merkurego, Wenus lub księżyce Jowisza. Każde ciało niebieskie ma zdefiniowaną własną elipsoidę, więc obliczenia odległości i powierzchni pozostają dokładne.

Integracja z Python i Jupyter

Oddzielna paczka Python geolibre jest dostępna dla naukowców zajmujących się danymi. Umożliwia osadzanie interaktywnych map bezpośrednio w komórkach Jupyter Notebook. Możesz przekazać ramkę DataFrame z Pandas lub GeoPandas do widżetu i natychmiast otrzymać gotową reprezentację kartograficzną.

Jak wypróbować

Najszybszy sposób to otwarcie wersji webowej web.geolibre.app. Nie wymaga rejestracji ani instalacji.

Jeśli pracujesz w Jupyter, paczkę instaluje się standardowym poleceniem:

pip install geolibre

W przypadku instalacji Conda użyj repozytorium conda-forge:

conda install -c conda-forge geolibre

W przypadku lokalnych buildów aplikacji desktopowej dla Twojej dystrybucji, będziesz potrzebować Node.js i Rust:

git clone https://github.com/opengeos/GeoLibre.git
cd GeoLibre
pnpm install
pnpm tauri dev

Dla kogo jest ten projekt

GeoLibre jest przydatny dla deweloperów, badaczy i analityków danych, którzy potrzebują szybkiego narzędzia do przeglądania i wizualizacji danych geoprzestrzennych. Nie zastępuje w pełni ciężkich narzędzi GIS do złożonej kartografii, ale świetnie radzi sobie z szybkim wstępnym przetwarzaniem, prototypowaniem w Jupyter i prezentowaniem danych przestrzennych bezpośrednio w przeglądarce.

Powiązane projekty