Ai-Xis 6
Narzędzia wspólne

Projekty

Projekt jest jednostką pracy geodety: ma własny układ współrzędnych, własny obszar i własne dane.

Projekt jest jednostką pracy geodety: ma własny układ współrzędnych, własny obszar i własne dane. Aplikacja startuje na liście projektów; moduły GEO, CAD2D i GIS są zablokowane, dopóki projekt nie zostanie otwarty.

Nowy projekt zakłada obrysowy przycisk NOWY PROJEKT w nagłówku ramki (z plusem, po prawej). Gdy nie ma jeszcze żadnego projektu, zamiast listy na środku ramki stoi pusty stan: ikona folderu, napis „Nie ma jeszcze żadnego projektu" i podpowiedź, żeby założyć pierwszy tym przyciskiem (od 2026-09-14, wzór coss p-card-11).

Świeżo założony projekt otwiera pustą mapę (od 2026-09-25): do tego dnia na środku kadru stała próbka wzorów linii z katalogu znaków, którą mapa rysowała z automatu, więc nowy, pusty rysunek wyglądał, jakby coś już zawierał. Czego nie zamówiono, tego mapa nie rysuje.

Zakładanie projektu

Dialog pyta o:

  • nazwę i opis,
  • układ poziomy — strefę PL-2000 nazwą po ludzku („PL-2000 strefa 7 — południk 21°E"); aplikacja podpowiada strefę ze współrzędnej operatu, ale wybór pozostaje ręczny. Strefę wskazuje pierwsza cyfra współrzędnej Y operatu: Y = 7 431 779 to strefa 7 (południk 21°E, EPSG:2178). Projekt założony w strefie swojego obszaru przyjmuje materiał z PODGiK bez przeliczania. Od 2026-09-14 okno nie wypisuje tego objaśnienia pod polem — południk i EPSG pokazuje podpowiedź po najechaniu na przycisk układu,
  • układ pionowy — PL-EVRF2007-NH albo PL-KRON86-NH,
  • schemat aplikacyjny — według niego obiekty dostają klasy GML i identyfikatory IIP przy eksporcie. Dziś obowiązuje jeden: schemat rozp. 2021,
  • biblioteki schematu — od 2026-09-18 każda biblioteka jest osobną pozycją i zaznacza się je niezależnie: GESUT, EGiB, BDOT500. Nowy projekt startuje z kompletem, bo mapa zasadnicza obejmuje wszystkie trzy, ale opracowanie węższe zostawia tylko swoje: inwentaryzacja sieci — sam GESUT, mapa do celów projektowych — GESUT i BDOT500, wznowienie granic — sam EGiB. Przynajmniej jedna musi zostać: z bibliotek powstają klasy GML. Lista idzie ze słownika bazy, więc kolejna biblioteka pojawi się tu sama,
  • sposób rysowania (od 2026-09-20) — jak mapa rysuje obiekty projektu. GeoJSON to droga dotychczasowa: cały rysunek jako źródło MapLibre, a duże rysunki mapa sama bierze z kafelków bazy. Kafelki wymuszają kafelki wektorowe cięte przez bazę zawsze. Deck.gl rysuje wczytany rysunek z buforów binarnych nakładki deck.gl nad tą samą mapą — worker MapLibre nie dostaje rysunku wcale, kafelki bazy też nie wchodzą, więc projekt Deck.gl wczytuje się zawsze w całości (pomiar 2026-09-20: 1 MB zamiast 150 MB pamięci przy 10 tys. linii, edycja jednego obiektu 23 ms zamiast 635 ms). Trzy drogi istnieją obok siebie po to, żeby porównać je na własnych danych i własnym sprzęcie: dwa projekty na tym samym materiale, różny sposób rysowania. Zmiana w dialogu edycji działa od razu, bez ponownego otwierania projektu. Domyślnie GeoJSON,
  • moduł startowy — domyślnie GEO, bo pierwsza rzecz, którą się robi po założeniu projektu, to wczytanie materiału i obejrzenie mapy zasadniczej.

Wybór strefy jest nieodwracalny, gdy w bazie są już dane — dialog ostrzega o tym przed zapisem.

Aplikacja w przeglądarce (ai-xis.com)

Wdrożenie online działa tak samo jak stanowisko: lista projektów jest na początku pusta, pierwszy krok to założenie własnego projektu przyciskiem NOWY. Zakładanie, zmiana i usuwanie projektów są dostępne online w pełni; nie ma projektów przykładowych do obejrzenia (zdjęte 2026-09-13). Import GML online przyjmuje pliki każdej wielkości — na wdrożeniu Vercel plik idzie do bazy w częściach po 3 MB, na własnym serwerze jednym żądaniem (opis w PRZEPŁYWY).

Po jednym projekcie na każdy moduł

Wejście na listę projektów uzupełnia luki: moduł, który nie ma ani jednego projektu, dostaje jeden założony automatycznie (polecenie 2026-09-29 „ustaw automatycznie, że mają być utworzone po 1 projekcie dla każdego modułu"). Zbiorem modułów jest ten sam, co w szynie i w oknie nowego projektu.

Co to znaczy w praktyce:

  • projekt nosi nazwę modułu (GES-CAD, CAD-DRAW…) i opis mówiący, że powstał automatycznie,
  • układ współrzędnych nie jest zgadywany — nowy projekt bierze strefę projektu ostatnio zmienianego, a gdy nie ma żadnego, pierwszą ze słownika układów. Opis mówi wprost, że strefę trzeba potwierdzić, bo to pierwsza decyzja opracowania, a nie szczegół,
  • projekt bieżący się nie zmienia. Uzupełnianie zakłada projekty „obok", bez przełączania — wejście na listę i tak zamyka projekt bieżący,
  • moduł, który ma już swój projekt, jest pomijany: drugiego nie dostaje, a projekt użytkownika nie jest niczym nadpisywany.

Uzupełnianie biegnie raz, przy wejściu na listę, a nie po każdej zmianie. Dzięki temu skasowany projekt ostatniego modułu nie wraca w tym samym mrugnięciu, w którym potwierdzono usunięcie — lukę uzupełni dopiero następne wejście na listę. Gdy usługi nie ma (wdrożenie statyczne, baza nie stoi), uzupełnianie nie robi nic i milczy; o braku usługi mówi samo pobranie listy.

Galeria projektów

Widok początkowy modułu (od 2026-09-27, polecenie „zastosuj to samo rozwiązanie dla strony z projektami", „ten blok", „nie jako okno dialog tylko frame") — ten sam układ, co galeria bibliotek w S-BASE, osadzony w ramie:

  • szyna modułów po lewej z licznikami (od 2026-09-27, polecenie „na stronie projekty — z lewej strony podział na moduły"): WSZYSTKIE, a pod spodem każdy moduł, w którym projekt da się założyć — GEO-CAD2D, GIS-BASE, GEO-CAD3D, GES-CAD, XIS-BASE3D, BIM-CAD, FLOW-CAD, SCAN-TO-CAD, FORM-CAD. Lista jest ta sama, co w oknie nowego projektu, więc moduł pusty też stoi w szynie, z licznikiem 0 (2026-09-28, zgłoszenie „brakuje pozycji GES"): pozycja z zerem mówi „tu jeszcze nic nie ma", a brak pozycji nie mówi nic. Projekt założony bez wyboru modułu trafia do BEZ MODUŁU na końcu szyny — tej pozycji nie ma, dopóki taki projekt nie istnieje. To jedyny podział, jaki na tej stronie coś znaczy: otwarty projekt pracuje w jednym module i nie przełącza się na inny, więc moduł jest cechą projektu, nie ekranu. Wcześniej szyna dzieliła na WSZYSTKIE · CHRONIONE · WŁASNE; flaga nie przepadła — chroniony projekt nadal nosi odznakę chroniony na karcie,
  • żywe szukanie po nazwie, opisie, układzie, autorze i nazwie modułu — pole stoi w nagłówku, obok tytułu, nad podziałem na szynę i listę (2026-09-27, polecenie „przesuń przycisk z polem szukania wyżej nad listą”): szuka po wszystkich projektach, nie po samej kolumnie,
  • karty projektów: nazwa, opis albo autor, a na odznakach moduł, układ poziomy pełną nazwą („PL-2000 strefa 7 · 21°E · EPSG:2178" — ta sama etykieta, co przy zakładaniu projektu), układ wysokościowy, sposób rysowania, nazwa schematu („Schemat rozp. 2021", nie kod ROZP_2021) i każda biblioteka składu osobno z nazwy — GESUT, EGiB, BDOT500.

Nazwy modułów w szynie idą czcionką logo (Galactus), tak jak w karcie menu i w górnym pasku — moduł ma wszędzie wyglądać tak samo. Szyna niesie samą nazwę: bez nagłówka „Moduł projektu" nad listą i bez kolorowych kafelków z ikoną przy pozycjach (2026-09-28, polecenia „usuń", „usuń ikony avatary", „powiększ czcionkę") — nazwa modułu jest całą treścią pozycji, więc dostała większy stopień pisma i całe miejsce w wierszu. Wybrana karta projektu ma cały obrys oświetlony: ramka w kolorze wiodącym i poświata dookoła, równe na każdym boku i każdym rogu, bez ruchu (2026-09-27, polecenia „animacja — zatrzymaj — jednakowy efekt", „cały obrys oświetlony" — światło obiegające krawędź świeciło w jednym miejscu, a gasło w pozostałych). Karty nie mają już kafelka ze skrótem nazwy.

Zaznacza CAŁA POWIERZCHNIA karty (od 2026-09-27, polecenie „popraw zaznaczanie projektu — działa na całej powierzchni karty") — nie tylko nazwa: klik gdziekolwiek w kartę zaznacza projekt, podwójny klik go otwiera, OTWÓRZ w stopce robi to samo. Z klawiatury: ENTER otwiera, SPACJA zaznacza. Karta pod kursorem zmienia tło, więc widać, która przyjmie kliknięcie. Na karcie stoją trzy ikony: OTWÓRZ (otwiera od razu, bez wcześniejszego zaznaczania), EDYCJA i USUNIĘCIE — kliknięcie w którąkolwiek z nich robi swoje i nie zaznacza karty przy okazji.

W stopce stoi licznik projektów, nazwa wybranego i jeden przycisk — OTWÓRZ (2026-09-27, polecenia „na dole usuń przycisk wyczyść wybór", „i nowy projekt", „przycisk tylko nowy projekt na górze"). WYCZYŚĆ WYBÓR niczego nie ratował — wybór zmienia się kliknięciem w inną kartę. NOWY PROJEKT został wyłącznie w nagłówku ramki, bo dwa wejścia do tego samego okna tylko mnożyły przyciski.

Nie ma tu kategorii „bieżący" — i nie ma jej z powodu, który jest ważniejszy niż wygoda: wejście na listę projektów ZAMYKA projekt (od 2026-09-27, polecenia „zamknięte okno projektu powoduje wyłączenie projektu", „nie ma projektu bieżącego, gdy jest strona PROJEKTY"). Nie da się jednocześnie wybierać opracowania i w nim pracować, więc moduły pracy — GEO-CAD2D, GIS-BASE, XIS-BASE3D — blokują się natychmiast po wejściu tutaj i odblokowują dopiero po OTWÓRZ. Projekt otwierany ostatnio nosi na karcie odznakę ostatnio otwarty i tyle to znaczy.

Do 2026-09-27 widokiem początkowym była tabela projektów z kolumnami L.p., NAZWA, OPIS, MODUŁ, UKŁAD POZIOMY, UKŁAD PIONOWY, EPSG, ZMIENIONO i AKCJE; wcześniej (do 2026-09-23) — rozwijane karty.

Otwarty projekt pracuje w jednym module (od 2026-09-15). Dostępna jest tylko zakładka modułu projektu — GEO-CAD2D albo GEO-CAD3D — a pozostałe przestrzenie (GES-CAD, GIS-BASE, XIS-BASE3D i druga z pary GEO) stoją wyszarzone; podpowiedź po najechaniu mówi, w którym module pracuje projekt. Moduły wspólne — PROJEKTY, S-BASE, POMOC, USTAWIENIA — zostają dostępne. S-BASE jest dostępny także bez projektu (od 2026-09-18), już podczas wyboru projektu: biblioteki stylów konfigurują aplikację, nie opracowanie, więc można je przygotować, zanim projekt powstanie.

USUŃ jest twardy i dotyczy każdego projektu — bieżącego, z zadaniami i demo; okno potwierdzenia wymienia najpierw, co zniknie razem z projektem.

Schemat projektu

Każdy projekt musi mieć wybrany schemat (od 2026-09-27). To nie to samo, co schemat aplikacyjny rozporządzenia, który mówi, według czego powstają klasy GML: schemat S-BASE mówi, które obiekty wchodzą w skład opracowania — i to jego skład rysuje lewy slider GEO-CAD2D.

Wybiera się go w oknie zakładania projektu, z listy idącej z bazy (S-BASE_schematy), więc własne schematy złożone w S-BASE widać tam od razu. Projekt bez jawnego wyboru dostaje schemat wbudowany rozp. 2021 — żadną drogą zapisu nie da się założyć projektu bez schematu.

Wczytywanie materiału

Kreator importu bierze komplet plików naraz i sam rozpoznaje zawartość: czy to DXF, GML, czy plik obcy, a przy GML-u — do której bazy należy. Rozpoznanie idzie po klasach obiektów (GES_, EGB_, OT_), a nie po przestrzeniach nazw, bo te bywają w plikach z PODGiK dowolne.

Dziś pliki upuszcza się na obszar roboczy modułu GEO albo CAD2D — pola przeciągania w samym module PROJEKTY jeszcze nie ma.

Karta projektu wymienia pliki wczytane do projektu: nazwę, datę, liczbę obiektów, rozmiar i rejestry. Plik GML jest w bazie w całości od chwili zapisu (pierwsza faza importu), więc przy wpisie może stać „w bazie, bez importu", „import w toku" albo „import nieudany" — plik nie znika z bazy po błędzie i nie trzeba go przesyłać ponownie.

Rysunek projektu

Rysunek roboczy mieszka w bazie jako jeden dokument na projekt. Wczytuje się przy wejściu do modułu, zapisuje sam 2 sekundy po ostatniej zmianie, a stan zapisu widać w rogu obszaru roboczego. Przy ukryciu karty przeglądarki zapis idzie natychmiast, żeby zamknięcie okna niczego nie zabrało.

Obiekt niepoprawny wypada z zapisu z podanym powodem, a reszta rysunku wchodzi — jeden zły obiekt nie blokuje całego zapisu.

Ograniczenia

  • Nie ma modułu transformacji. Do jego powstania zmiana strefy projektu, w którym są dane, jest zablokowana wyzwalaczem bazy.
  • Kolumny geometrii mają układ z chwili założenia bazy. Praca w innej strefie niż ta, w której przeszły migracje, wymaga założenia bazy od nowa.
  • Lista stref jest wyłączona, gdy w bazie są obiekty.
  • Definicje symboli i linii nie wchodzą do zapisu rysunku — warstwa niesie sam identyfikator znaku.
  • Zapis rysunku działa przez mostek deweloperski; na wdrożeniu statycznym rysunek zostaje w pamięci przeglądarki.

Bez projektu nie ma układu współrzędnych

Układ współrzędnych bierze się wyłącznie z projektu — wybierasz go przy zakładaniu i później jest niezmienny. Aplikacja nie ma układu domyślnego i nie zakłada projektu sama.

Dopóki nie ma projektu bieżącego:

  • mapa nie wstaje i pisze „układ współrzędnych jest nieznany — załóż albo otwórz projekt" zamiast rysować cokolwiek w zgadniętej strefie;
  • pas współrzędnych pokazuje „—", nie nazwę układu;
  • import GML i moduł ZADANIA odmawiają z komunikatem kierującym tutaj.

To celowe. Wcześniej aplikacja przyjmowała po cichu PL-2000 strefę 6 i przez tydzień wracały przez to błędy, których nie było widać na ekranie — rysunek się rysował, tylko liczby były cudze. Myślnik i odmowa niczego nie udają.

Projekty zostają w bazie, przy koncie

Projekt, który założysz — na stanowisku i online — zapisuje się w bazie i zostaje. Należy do konta (fborkowski@dev, migracja 102) i czeka na następne wejście razem z rysunkiem oraz wszystkim, co do niego zaimportujesz.

Tak jest od 2026-09-25. Wcześniej projekt założony online był sesyjny: znikał razem z kartą przeglądarki, bo online nie było komu go przypisać. Odkąd jest konto, nie ma powodu niczego kasować za plecami użytkownika.

Co to znaczy w praktyce:

  • projekt znika tylko wtedy, gdy sam go usuniesz. Żadne sprzątanie automatyczne nie dotyka projektu zapisanego dla konta;
  • projekty demo przeżywają sprzątanie. Mają flagę „chroniony". Z listy PROJEKTY usuniesz jednak każdy projekt, także demo — przycisk USUŃ jest czynny dla wszystkich, a okno potwierdzenia ostrzega, że to dane przykładowe i że aplikacja ich sama nie odtworzy;
  • sprzątanie sesji zostaje w kodzie na przyszłość — dla gościa, który wejdzie bez konta. Taki projekt znów będzie żył do zamknięcia karty.

Powód nie jest wygodą, tylko odpowiedzialnością: materiał z ODGiK niesie imiona, PESEL i adresy właścicieli. Plik wgrany po to, żeby coś sprawdzić, nie ma po co zostawać w bazie dłużej niż sesja, w której był oglądany.

Praca, która ma zostać, należy do stanowiska. Online służy do oglądania, próbowania i mierzenia — nie do prowadzenia operatu.

Kiedy zapis NIE dochodzi do bazy

Wskaźnik zapisu i konsola mówią prawdę także wtedy, gdy serwer zapis odrzucił. Zdarza się to w trybie podglądu: żądanie jest przyjmowane, ale nic nie trafia do bazy.

Zobaczysz wtedy komunikat „NIE ZAPISANO do bazy" z powodem, a wskaźnik pokaże błąd — nie „zapisany". Praca zostaje w pamięci karty i zginie razem z nią, więc trzeba ją wynieść (eksport) albo pracować na stanowisku.

Odświeżenie rysunku jest wtedy wstrzymane: wczytałoby stan z bazy, czyli skasowałoby z ekranu to, czego baza nie przyjęła.

Do 2026-09-22 aplikacja pokazywała w tej sytuacji „Zapisano zmiany", bo nie odróżniała przyjęcia żądania od zapisu. Gorsze od samego braku zapisu było to, że uznawała zmiany za utrwalone i nie próbowała ich wysłać ponownie — nawet po przejściu w tryb pełnej pracy.

Na tej stronie