Hertz GPS Linkway - zakres integracji i źródła danych
Hertz GPS Linkway to układ, w którym lokalizatory Hertz Systems w pojazdach przekazują pozycje do modułów linkway.TMS i linkway.FLEET. Lokalizator wie, gdzie jest pojazd. Nie wie, jakie zlecenie wiezie, do kogo jedzie i na kiedy ma być na rampie. Te informacje ma TMS, dlatego dopiero połączenie obu źródeł daje dyspozytorowi obraz, na którym można podjąć decyzję.
Warto rozdzielić dwie role. Telematyka odpowiada za pozycję i prędkość pojazdu, a TMS za zlecenie i jego rozliczenie. Gdy dyspozytor poprawia dane zlecenia w arkuszu, a kierowca jedzie według innej wersji, żadna pozycja GPS tego nie naprawi.
| Źródło danych | Co dostarcza | Kto z tego korzysta |
|---|---|---|
| Lokalizator Hertz (Monitoring GPS) | pozycja, prędkość, zapłon, historia przejazdów | dyspozytor, kontrola floty |
| linkway.TMS | zlecenie, plan trasy, statusy, ETA | spedytor, obsługa klienta |
| linkway.FLEET | koszty eksploatacji, wykorzystanie pojazdów | menedżer floty |
| linkway.INTEGRATOR | wymiana danych między źródłami a modułami | administrator integracji |
Opis samego integratora znajduje się w artykule o linkway.INTEGRATOR i jego zastosowaniach, a moduł zleceń przedstawia tekst o Linkway TMS w transporcie międzynarodowym. Ta strona zajmuje się warstwą pośrednią: drogą pojedynczej pozycji GPS od urządzenia do ekranu.

Reguła: jedna pozycja GPS nie zmienia statusu zlecenia, robi to dopiero zdarzenie wyliczone z kilku pozycji.
Przepływ pozycji GPS od lokalizatora do dyspozytora
Lokalizator zapisuje pozycję w stałym interwale albo po zdarzeniu, na przykład po włączeniu zapłonu. Dane trafiają do serwera producenta telematyki, a stamtąd do linkway.INTEGRATOR, który mapuje je na pola TMS. Każdy przeskok to miejsce, w którym pozycja może się opóźnić albo zdublować. Czasem ginie całkiem.
Rekord pozycji i jego pola
Rekord pozycji jest mały, ale każde pole ma znaczenie dla dalszych obliczeń. Czas fiksacji pochodzi z urządzenia, a nie z serwera, bo pozycja zapisana w buforze po wyjściu z tunelu ma wartość dla trasy dopiero wtedy, gdy zachowa swój prawdziwy czas.
- Czas fiksacji w UTC - moment odczytu z odbiornika GPS, podstawa do porządkowania pozycji.
- Szerokość i długość geograficzna - współrzędne w układzie WGS 84 (SRID 4326).
- Prędkość i kierunek - dane do rozróżnienia postoju od jazdy w korku.
- Stan zapłonu - odróżnia postój z wyłączonym silnikiem od postoju w kolejce do rampy.
Duplikaty i kolejność komunikatów
Komunikaty przychodzą w innej kolejności, niż powstały, a ten sam odczyt bywa wysłany dwukrotnie po zerwaniu połączenia GSM. Klucz główny (identyfikator urządzenia, czas fiksacji) rozwiązuje oba problemy naraz. Przykład poniżej pokazuje mechanizm, nazwy tabel są poglądowe i nie odzwierciedlają schematu produktu.
CREATE TABLE dbo.GpsPosition (
DeviceId int NOT NULL,
FixTimeUtc datetime2(0) NOT NULL,
Lat decimal(9,6) NOT NULL,
Lon decimal(9,6) NOT NULL,
SpeedKmh smallint NULL,
Ignition bit NULL,
CONSTRAINT PK_GpsPosition PRIMARY KEY CLUSTERED (DeviceId, FixTimeUtc)
);
INSERT INTO dbo.GpsPosition (DeviceId, FixTimeUtc, Lat, Lon, SpeedKmh, Ignition)
SELECT s.DeviceId, s.FixTimeUtc, s.Lat, s.Lon, s.SpeedKmh, s.Ignition
FROM #Staging AS s
WHERE NOT EXISTS (SELECT 1 FROM dbo.GpsPosition AS p
WHERE p.DeviceId = s.DeviceId AND p.FixTimeUtc = s.FixTimeUtc);
Ostatnia pozycja pojazdu to zapytanie o jeden wiersz z końca zakresu jednego urządzenia. Indeks klastrowy zaczynający się od DeviceId zamienia je na pojedyncze wyszukiwanie zamiast skanu całej tabeli. Gdyby klucz miał odwrotną kolejność kolumn, każde odświeżenie mapy przeglądałoby dane wszystkich pojazdów.
Częstotliwość raportowania a obciążenie bazy
Interwał 30 sekund oznacza 2880 pozycji na pojazd na dobę. Dla stu pojazdów to 288 tysięcy wierszy dziennie, czyli ponad sto milionów rocznie. Liczby są przykładowe, ale rząd wielkości wyjaśnia, dlaczego surowe pozycje przechowuje się przez ustalony okres, a dłuższą historię trzyma w postaci zdarzeń: wjazdów oraz postojów w strefach.
Geofencing w strefach załadunku i rozładunku
Geofencing zamienia współrzędne na zdarzenia zrozumiałe dla procesu. Strefę opisuje okrąg o zadanym promieniu albo wielokąt, a system sprawdza, po której stronie granicy leży kolejna pozycja. Wielokąt lepiej oddaje kształt placu magazynowego, bo okrąg o promieniu obejmującym bramę obejmie też drogę dojazdową.
| Kształt strefy | Zastosowanie | Ryzyko fałszywego zdarzenia |
|---|---|---|
| Okrąg | stacja paliw, parking przy trasie | średnie, obejmuje przyległe drogi |
| Wielokąt | plac magazynu, teren zakładu | niskie, przy poprawnych wierzchołkach |
| Korytarz wzdłuż trasy | kontrola zjazdu z planowanej drogi | zależy od szerokości korytarza |
W SQL Server test położenia punktu wykonuje typ geography. Kolejność wierzchołków ma znaczenie: pierścień musi biec przeciwnie do ruchu wskazówek zegara, bo odwrotna kolejność oznacza dopełnienie, czyli prawie całą kulę ziemską. Opis typu i metod zawiera dokumentacja danych przestrzennych w SQL Server.
DECLARE @strefa geography = geography::STPolyFromText(
'POLYGON((16.9200 52.4000, 16.9300 52.4000, 16.9300 52.4060, 16.9200 52.4060, 16.9200 52.4000))', 4326);
DECLARE @punkt geography = geography::Point(52.4030, 16.9250, 4326);
SELECT @strefa.STIntersects(@punkt) AS WStrefie;
Histereza i czas postoju w strefie
Odbiornik GPS ma błąd rzędu kilku metrów, więc pojazd stojący przy granicy strefy potrafi wchodzić i wychodzić z niej co kilkanaście sekund. Zdarzenie wjazdu potwierdza się dopiero po kilku kolejnych pozycjach wewnątrz strefy, a wyjazd po kilku pozycjach na zewnątrz. Czas postoju liczy się od potwierdzonego wjazdu, nie od pierwszej pozycji.
Zdarzenia z geofencingu dobrze łączą się z planem dostaw. Wjazd do strefy magazynu może uruchamiać w systemie awizacji status „na placu”, a opis okien i ramp znajduje się w artykułach o oknach czasowych oraz o awizacjach w Studio VSS.net.
Nieplanowane postoje poza strefami
Ta sama zasada działa w drugą stronę. Pojazd z prędkością zero i wyłączonym zapłonem przez ustalony czas, znajdujący się poza jakąkolwiek zdefiniowaną strefą, generuje zdarzenie nieplanowanego postoju. System może wtedy ostrzec dyspozytora o przekroczeniu czasu dojazdu, zanim kierowca zadzwoni z informacją o awarii.
Próg czasu dobiera się do rodzaju trasy. Postój dwudziestominutowy na trasie międzynarodowej może być obowiązkową przerwą, a taki sam postój w mieście przy dostawie do sklepu oznacza problem. Dlatego próg zapisuje się przy zleceniu albo przy typie trasy, a nie globalnie dla całej floty.
ETA liczone z pozycji i czasu pracy kierowcy
ETA, czyli przewidywany czas przyjazdu, jest funkcją kilku wejść, które system pobiera z różnych miejsc. Pozostały dystans wynika z planu trasy w TMS. Średnia prędkość pochodzi z ostatnich pozycji GPS albo z historii przejazdów na danym odcinku. Obowiązkowe przerwy kierowcy wynikają z przepisów o czasie prowadzenia i z zapisu czasu pracy.
public static DateTime Eta(DateTime nowUtc, double remainingKm, double avgKmh, TimeSpan breaks)
{
if (avgKmh <= 0) throw new ArgumentOutOfRangeException(nameof(avgKmh));
return nowUtc.AddHours(remainingKm / avgKmh) + breaks;
}
Wzór jest prosty, a jakość wyniku zależy od wejść. Zawyżona średnia prędkość daje ETA zbyt optymistyczne, a pominięcie przerwy przesuwa przyjazd o kilkadziesiąt minut. Mechanizm liczenia ETA w systemach Linkway opisuje artykuł o ETA od Linkway.
| Składnik ETA | Źródło | Skutek błędu |
|---|---|---|
| Pozostały dystans | plan trasy w TMS | ETA przesunięte proporcjonalnie do błędu |
| Średnia prędkość | pozycje GPS z ostatnich minut | zbyt optymistyczna prognoza w korku |
| Przerwy i czas pracy | zapis czasu pracy kierowcy | nagłe skoki ETA po postoju |
| Postój w strefie | zdarzenia geofencingu | zawyżony czas obsługi punktu |
ETA przelicza się po każdej nowej pozycji, ale komunikat do odbiorcy wysyła się dopiero wtedy, gdy prognoza przekroczy ustalony próg względem poprzedniej wartości. Bez progu odbiorca dostawałby co minutę nową godzinę, a po kilku takich wiadomościach przestałby je czytać.
Aplikacja kierowcy jako drugie źródło statusów
Pozycja mówi, gdzie jest pojazd, a status od kierowcy mówi, co się tam wydarzyło. Aplikacja dla kierowcy, opisana w artykule o linkway.TRACKER, wysyła na urządzenie zlecenia z punktami trasy, a potwierdzenia etapów wracają do systemu. Dwa źródła się uzupełniają: geofencing zgłasza wjazd do strefy, kierowca potwierdza rozpoczęcie rozładunku.
Gdy oba sygnały się rozjeżdżają, TMS powinien oznaczyć rozbieżność, a nie wybierać jedną wersję po cichu. Kierowca potwierdził rozładunek, choć pozycja pokazuje pojazd 40 kilometrów dalej. Taki przypadek to zwykle pomyłka przy potwierdzaniu z wyprzedzeniem, ale bywa też pierwszym sygnałem o błędnie przypisanym urządzeniu.
Dowód dostawy (POD) trafia do zlecenia zaraz po zamknięciu etapu, więc rozliczenie i ewentualna reklamacja opierają się na jednym komplecie dokumentów. Koszt opóźnień w komunikacji z kierowcami omawia osobny tekst o aplikacji dla kierowcy.
Integracja przez linkway.INTEGRATOR i mapowanie pól
linkway.INTEGRATOR łączy źródła telematyczne, w tym Hertz Systems, z modułami TMS i FLEET. Wymiana jest dwukierunkowa i obejmuje pozycje oraz zdarzenia, a także statusy i parametry pojazdów. Do tego samego integratora można dołączyć inne źródła, na przykład GBOX czy WIALON, bez zmiany panelu dyspozytora. Producent opisuje to narzędzie na stronie linkway.INTEGRATOR, a praktyczne zastosowania omawia tekst o integratorze GPS dla flot.

Mapowanie urządzenia na pojazd
Najczęstszy błąd integracji dotyczy przypisania lokalizatora do pojazdu. Urządzenie ma własny identyfikator, a pojazd numer rejestracyjny, i po wymianie lokalizatora w serwisie stary identyfikator nadal figuruje w historii. Mapowanie z okresem ważności rozwiązuje ten kłopot bez przepisywania starych pozycji.
CREATE TABLE dbo.DeviceVehicle (
DeviceId int NOT NULL,
VehicleId int NOT NULL,
ValidFrom datetime2(0) NOT NULL,
ValidTo datetime2(0) NULL,
CONSTRAINT PK_DeviceVehicle PRIMARY KEY (DeviceId, ValidFrom)
);
SELECT p.FixTimeUtc, dv.VehicleId
FROM dbo.GpsPosition AS p
JOIN dbo.DeviceVehicle AS dv
ON dv.DeviceId = p.DeviceId
AND p.FixTimeUtc >= dv.ValidFrom
AND (dv.ValidTo IS NULL OR p.FixTimeUtc < dv.ValidTo);
Strefy czasowe i jednostki
Pozycje przychodzą w UTC, a okna dostaw są zapisane w czasie lokalnym. Przy zmianie czasu z letniego na zimowy godzina 02:30 występuje dwukrotnie, a przy zmianie w drugą stronę wcale, więc porównania okna z ETA wykonuje się na wartościach UTC, a konwersję stosuje dopiero przy wyświetlaniu. Podobnie z prędkością: mapowanie musi znać jednostkę źródła, bo część urządzeń raportuje w węzłach, a nie w km/h.
Architektura chmurowa (SaaS) upraszcza uruchomienie integracji, a zakres można rozszerzać o kolejne źródła w miarę potrzeb. Rozszerzenie oznacza nową konfigurację mapowania, nie zmianę procesów w firmie.
Dane GPS w raportach floty i kosztów
Po agregacji pozycje zamieniają się we wskaźniki, które porównuje się ze zleceniami i kosztami z linkway.FLEET. Przebieg z GPS zestawia się z kilometrami zleconymi, a różnica pokazuje puste przejazdy. Czas między wjazdem a wyjazdem ze strefy klienta pokazuje, ile trwa obsługa punktu, i daje argument w rozmowie o stawkach. Tego typu zestawienia omawia też artykuł o programie dla firmy transportowej łączącym dane i flotę.
| Wskaźnik | Sposób obliczenia | Dane wejściowe |
|---|---|---|
| Puste przebiegi | kilometry bez ładunku podzielone przez kilometry łącznie | GPS i zlecenia z TMS |
| Czas obsługi punktu | wyjazd ze strefy minus wjazd do strefy | zdarzenia geofencingu |
| Wykorzystanie pojazdu | godziny z włączonym zapłonem podzielone przez godziny dostępności | stan zapłonu, grafik pojazdu |
| Punktualność | wizyty w oknie dostawy podzielone przez wszystkie wizyty | zdarzenia geofencingu, okna dostaw |
Wskaźniki mają sens dopiero po ujednoliceniu definicji. Puste przebiegi liczone na dwa różne sposoby, raz z ładunkiem częściowym, raz bez, dadzą dwa wyniki i spór o to, który jest prawdziwy. Definicję ustala się przy wdrożeniu i zapisuje w dokumentacji raportów.
Wdrożenie integracji GPS i testy odbiorcze
Integracja z Hertz Systems zwykle nie wymaga wymiany floty, o ile pojazdy mają już lokalizatory. Koszt zależy od zakresu i liczby pojazdów, a wdrożenie prowadzi się bez zatrzymywania bieżących transportów. Ogólny przebieg wdrożenia Linkway przedstawia artykuł o czterech etapach wdrożenia linkway.TMS.
- Audyt procesów - opis planowania i dyspozycji oraz rozliczeń z klientem przed konfiguracją.
- Konfiguracja źródeł - połączenie lokalizatorów oraz definicja stref z mapowaniem pól.
- Testy wymiany danych - sprawdzenie pozycji oraz statusów na realnych przejazdach.
- Szkolenie i alerty - ustawienie progów oraz przeszkolenie dyspozytorów.
Testy odbiorcze mają konkretne scenariusze. Odtworzenie zapisanego przejazdu sprawdza geofencing bez wyjazdu pojazdu, a symulacja utraty zasięgu pokazuje, czy system oznacza lukę w danych, zamiast rysować prostą linię przez tunel. Po starcie obserwuje się terminowość oraz koszty, a reguły dopracowuje się na danych z pierwszych tygodni.
Zastosowanie danych lokalizacyjnych do pilnowania terminów dostaw do zakładu produkcyjnego opisuje osobny artykuł o monitoringu transportu dla produkcji, a pracę spedytora z tymi danymi przedstawia tekst o integratorze dla flot w pracy spedytora.




