Informacja o stanie

Hackaton PFR dla miast

Wspólnie z chłopakami z pracy podjęliśmy decyzję o dołączeniu do eventu organizowanego przez PFR. Celem hackatonu był coś tam pomyśleć coś tam poprogramować rozwiązać problemy trapiące średnie miasta w dobie kryzysu covidowego. Konkurencja była silna, zgłosiło się kilkaset osób. Nasz temat i miasto wybraliśmy po burzliwej dyskusji. Jako drugi, zapasowy, najciekawszy i najtrudniejszy – Świdnik: Mobilność szyta na miarę – analiza ruchu miejskiego w celu pozyskania danych do rozwoju infrastruktury publicznej. Jako pierwszy, temat najbezpieczniejszy i w którym mamy doświadczenie – Chełm: Bezpieczna segregacja odpadów – uszczelnienie systemu gospodarki śmieciowej w celu zmniejszenia ryzyka związanego z odbiorem odpadów medycznych. Celem było zaprojektowanie i przedstawienie MVP aplikacji geoportalowej, która spełni wymagania hackatonu. Przyznam się, że praca przez ponad 48 godziny z drobnymi przerwami na sen, w stresie i nawarstwiających problemach technicznych (linux żondźi) moje umiejętności nieco klęknęły. Wyciągnąłem wnioski, czeka mnie jeszcze sporo pracy własnej ale okazało się, że… zakwalifikowaliśmy się do FINAŁU. Motywujące, rzeczywiście mogliśmy wygrać jednak na ten moment „efekt nieprzegrania” mnie satysfakcjonuje. Gratulacje dla zwycięskiego zespołu. Poniżej link, do naszej prezentacji, występujemy jako pierwsi. Niestety organizatorzy nie włączyli nagrywania i prezentacja jest ucięta na początku. Chętnie udostępnię pełna wersję „prezki”.

Update po podaniu oficjalnych wyników.

No drugie miejsce… cieszy i boli zarazem 😀

Informacja o stanie

OpenStreetMap w rozszerzonej rzeczywistości – AR

Podejść do rozszerzonej rzeczywistości miałem co najmniej kilka wszystkie zakończyły się technologicznym sukcesem i komercyjną porażką. Generalnie mocno sceptycznie podchodzę do tego typu rozwiązań z użyciem JavaScriptu ale po pierwszej iteracji jestem zafascynowany.

Pierwsza wersja działa bardzo stabilnie, obiekty elegancko wyświetlają się jako nakładka na obraz z kamery. Jestem po jednej próbie w terenie, podszedłem do kilku POIów, które to reprezentują sklepy i o dziwo obiekty na ekranie zwiększały swój rozmiar po przybliżeniu się. Grejtsakces.

Problemy?

GPS działa zadowalająco, poszczególne POI pokrywają się z azymutem w rzeczywistości. Ale… idę o zakład, że punkty są przesunięte o kilka-kilkanaście metrów.

Overpass API dla danych OSM.org. Trzeba się mocno zmóżdżyć, żeby się do nich dobrać. Pierwsza wersja wyświetla tylko część sklepów w okolicy. Niestety operatorzy/kartografowie OSMu w niespójny sposób mapują obiekty. Api zwraca część sklepów jako punkty, a część jako linie(!). No upierdliwe to ponieważ trzeba dobrze napisać query a potem poprawnie obsłużyć po stronie klienta.

Zachęcam do testów. Link będzie dostępny jeszcze przez jakiś czas.

https://geomonitor.pl/artest/

Update 1

Umożliwiłem interakcję. Wystarczy najechać kursorem na obiekt a wyświetlą się informacje na jego temat.

Informacja o stanie

Stream pogodowy

Projekt z kategorii „pomiędzy szaleństwem, kreatywnością a głupotą”. Nie znalazłem nic podobnego na necie więc warto spróbować tego podejścia, żeby chociaż móc powiedzieć że byłem „pierwszym”, nawet jeżeli projekt upadnie z jakiegoś powodu.

O co chodzi?

Integracja różnego rodzaju danych przestrzennych zawsze wywoływała u mnie szybsze bicie serca, to pewnie skrzywienie zawodowe „gisowca” ale po prostu lubię patrzeć na kilka pozornie nie związanych ze sobą map. Dodając do koncepcji, aktualną koronawirusową modę na real-time-dashboardy wychodzi mi coś takiego.

Dlaczego nie zrobić kolejnej aplikacji?

Powodów jest kilka. Przede wszystkim to czas na wytworzenie takiego wrappera. Po drugie to też czas na „ogarnięcie danych od dostawców”, poza informacjami meteo, większość z nich jest stosunkowo trudno dostępna. Po trzecie. Nie będzie Ci się chciało w to klikać… apke raz zainstalujesz i zapomnisz… adres url dodasz do zakładek… i zapomnisz a na youtubie siedzisz cały czas więc jest szansa, że ten youtube ci przypomni o projekcie xD

Jak to działa?

  1. No pewne minimum kodu trzeba było napisać ale na prawdę mało. Tylko podstawowe funkcjonalności związane odświeżaniem, centrowaniem i zoom levelem.
  2. Resztę warstw streamingu ogarnia OBS Studio.
  3. Muszę jeszcze to przerzucić na jakiś mały tani serwerek żeby prądu dużo nie żarł.

Jak używać?

Domyślam się, że nie będziesz siedział przed komputerem i oglądał pogodę ale jeżeli przebywasz w swoim high-techowym biurze i masz wolny monitor zawieszony gdzieś na ścianie to obok jenkinsa, nieprzechodzących testów i generujących się raportów, widok kolorowych map w trybie pełnoekranowym będzie wyglądał bardzo profesjonalnie 😛

Informacja o stanie

Mapa Prypeci

Na fali serialu HBO o przygodach „sowieckich fachowców” i „testach na produkcji” poczułem silną potrzebę wsparcia kolegów zajmujących się urbexem w okolicach czarnobylskiej elektrowni.

Moim podstawowym celem było stworzenie aplikacji PWA działającej w trybie offline w oparciu o bibliotekę Mapbox GL JS.

Co sie udało?

PWA: Wdrożone, apka pozwala się zainstalować na pc i smartphonach z Androidem.

Mapbox GL: Kilkoma brzydkimi hackami udało się „odciąć” od płatnych vector-tile’i i przygotować wstępną formę wizualizacji dróg oraz trójwymiarowe budynki.

Podkład: Celem było stworzenie własnej „postarzanej” warstwy rastrowej, która ma nadać „postapokaliptyczny” klimat. Dokumentacja nie podaje jakiegoś „oczywistego” rozwiązania na referencję takiej grafiki. Użyłem gimpa, qgisa i danych o pokryciu terenu z OSM.

Powyższa mapa jest interaktywna, możesz poscrollować i spróbować zainstalować apkę z tego linku.

Bardzo mocno brakuje mi merytorycznych danych o „zonie”, nawiązałem kontakt z osobą, która to wydaje mapę okolicy na papierze, niestety dane nie są w „gisowym” formacie, a powyższy nie jest skłonny do współpracy… Samej „brudnej roboty” przy tym projekcie jest jeszcze sporo, ale kluczowe funkcjonalności zostały uzyskane.

Co dalej?

UI: mam przygotowaną wstępną formę, i kilka podstawowych funkcjonalności. Pozostaje tylko wektoryzować punkciki…

AR: To będzie formalność.