Rejestruj żądania i odpowiedzi do interfejsu API

Fleet Engine oferuje prostą usługę logowania, która umożliwia zapisywanie żądań i ładunków odpowiedzi interfejsu API. Za ich pomocą możesz debugować integrację, tworzyć wskaźniki monitorowania i analizować wzorce ruchu.

Fleet Engine wysyła logi jako logi platformy do Cloud Logging, aby umożliwić Ci dostęp do nich za pomocą narzędzi Cloud Logging.

Jakie dzienniki Fleet Engine

Fleet Engine wysyła do Cloud Logging wiele informacji, takich jak:

  • Wszystkie uwierzytelnione żądania i odpowiedzi REST oraz gRPC
  • Odpowiedzi dotyczące błędów
  • Żądania, odpowiedzi i komunikaty o błędach z wywołań zainicjowanych przez pakiet SDK sterowników do Fleet Engine.
  • Podziel logi według obsługiwanych typów logów:

Sprawdź dostępne komunikaty logu i schemat w dokumentacji logowania.

Używaj ograniczonych i domyślnych zasobników logów, aby zachować zgodność z zasadami przechowywania danych

Użycie zasobników „ograniczonych” i „domyślnych” daje wyraźny obraz ograniczonego i nieograniczonego wykorzystania danych. Niektóre dane dziennika wysyłane przez Fleet Engine do Google Maps Platform mogą być przechowywane tylko przez ograniczony czas zgodnie ze Szczegółowymi warunkami korzystania z usługi mobilnej. Aby mieć pewność, że dane z ograniczeniami przechowujesz tylko przez dozwolony czas, oznacz je etykietą TOS_RESTRICTED (już to robi Fleet Engine) i zarejestruj w specjalnym zasobniku o nazwie „z ograniczeniami”.

W ustawieniach Cloud Logging możesz określić, jak długo dane mają być przechowywane, i trwale je usuwać po wygaśnięciu. Na przykład logi o ograniczonym użyciu należy przechowywać tylko przez 30 dni.

Loguj wszystkie pozostałe dane nieograniczone do „domyślnego” zasobnika, w którym mogą być przechowywane przez dłuższy czas, zgodnie z definicją w Szczegółowych warunkach korzystania z usług mobilnych (zwykle przez 1 rok). Użycie zasobników „ograniczonych” i „domyślnych” zapewnia wyraźny obraz ograniczonego i nieograniczonego wykorzystania danych.

Przesyłaj wszystkie pozostałe dane logów bez ograniczeń do „domyślnego” zasobnika, gdzie mogą one pozostawać bezterminowo.

Uzyskaj pełny widok przez połączenie logów z ograniczeniami i bez ograniczeń

Logi o ograniczonym wykorzystaniu zawierają dane o ograniczonym wykorzystaniu i odniesienie do logu domyślnego, dzięki czemu można je traktować razem. Log o ograniczonym wykorzystaniu zawiera parametr insertId domyślnego logu w polu parent_insert_id. Za pomocą tego pola możesz połączyć dane z obu logów i uzyskać pełny obraz.

Wszystkie dostępne komunikaty i schematy znajdziesz w dokumentacji logowania.

Włącz Cloud Logging

Fleet Engine automatycznie włącza logi domyślne dla nowych klientów korzystających z usług mobilnych, zaczynając od projektów utworzonych 10 lutego 2022 r. Aby sprawdzić, czy logowanie jest włączone, użyj tego zapytania w eksploratorze logów :

resource.type:"fleetengine.googleapis.com"

Jeśli nie widzisz żadnych logów dla tego zapytania, usługa Cloud Logging mogła nie zostać włączona w Twoim projekcie. Jeśli chcesz ją włączyć, skontaktuj się z działem pomocy.

Włącz logi o ograniczonym wykorzystaniu

Logi ograniczonego użycia są włączone na żądanie. Aby włączyć te logi w projekcie Google Cloud, wykonaj te czynności:

Przygotuj projekt do otrzymywania logów o ograniczonym wykorzystaniu

  1. W konsoli Google Cloud otwórz stronę Router logów.
  2. Zaktualizuj _Domyślny zasobnik logowania, aby wykluczyć logi o ograniczonym wykorzystaniu.
    1. Wybierz _Domyślny zasobnik logowania, a następnie kliknij Edytuj ujście.
    2. W sekcji „Wybierz logi do odfiltrowania ujścia” kliknij przycisk „Dodaj wykluczenie”:
      1. Nazwa filtra wykluczeń: ExcludeRestrictedLogs
      2. Filtr wykluczeń: label.restriction="TOS_RESTRICTED"
    3. Kliknij „Zaktualizuj ujście”.
  3. Zaktualizuj zasobnik ograniczonego logowania, aby przechowywać logi o ograniczonym wykorzystaniu.
    1. Na stronie Router logów wybierz „Utwórz ujście”.
    2. Utwórz ujście z tymi ustawieniami:
      1. Szczegóły ujścia:
        1. Nazwa: RestrictedLogs
        2. Opis: logi ograniczonego użycia Routes Fleet Engine
      2. Miejsce docelowe ujścia:
        1. Usługa ujścia: zasobnik Logging
        2. Wybierz zasobnik logów: utwórz nowy zasobnik logów
          1. Nazwa: Zastrzeżona
          2. Opis: zawiera logi o ograniczonym wykorzystaniu Fleet Engine
        3. Okres przechowywania: 30 dni
          1. Uwaga: okres przechowywania nie może przekraczać 30 dni.
      3. Logi do uwzględnienia w ujściu: pozostaw puste
      4. Logi do odfiltrowania ujścia: kliknij „Dodaj wykluczenie”
        1. Nazwa filtra wykluczeń: WykluczNonRestrictedLogs
        2. Filtr wykluczania: NIE (resource.type = "fleetengine.googleapis.com/Fleet" LUB resource.type = "fleetengine.googleapis.com/DeliveryFleet") NIE (labels.restriction = "TOS_RESTRICTED")
      5. Kliknij „Utwórz ujście”.

Skontaktuj się z zespołem pomocy, aby włączyć logi ograniczonego użycia

Następnie skontaktuj się z zespołem pomocy i podaj w zgłoszeniu te informacje:

  1. Identyfikatory projektów do włączenia:
  2. Adres e-mail osoby, która prosi o zmianę:
    1. Uwaga: ta osoba powinna mieć uprawnienia do edycji projektów Google Cloud na liście.
  3. Włączając treści z Map Google do ograniczonego użytku w usłudze Cloud Logging, zgadzasz się przestrzegać warunków korzystania z Google Maps Platform i warunków korzystania z usług mobilnych, w tym wymagań dotyczących buforowania i dozwolonego użytku, w odniesieniu do Treści w Mapach Google. Tak/nie

Gdy zespół pomocy otrzyma Twoją prośbę, wyśle potwierdzenie, że logowanie zostało włączone w projekcie.

Podziel logi Cloud

Cloud Logging ogranicza rozmiar logów przychodzących do 256 KB. Usługa odrzuca logi poniżej tego progu. Aby zagwarantować, że Cloud Logging będzie przechowywać duże logi, Fleet Engine może je podzielić na serie logów poniżej progu 256 KB. Takie logi mają wspólny przedrostek insertId, który wskazuje kolejność, w jakiej usługa podzieliła mniejszy logi od oryginalnego logu ponadwymiarowego. Możesz je potem połączyć ponownie na podstawie ich insertId.

Aby uzyskać dostęp do oryginalnego niepodzielonego logu, scal podzielone logi według identyfikatorów insertId w pierwotnej kolejności, w jakiej zostały podzielone, zgodnie z ich indeksem we wpisie logu w chmurze.

Podzielona struktura logów jest taka sama jak struktura opisana w przewodniku po podziale wpisów logu kontrolnego dla logów kontrolnych Cloud. Główna różnica w przypadku logów podziału we Fleet Logging polega na tym, że podział następuje w polu jsonPayload, a nie protoPayload. Przykład podziału znajdziesz w następnej sekcji.

Obsługiwane typy logów

Fleet Engine obsługuje dzielenie logów tylko w przypadku tych typów logów, których rozmiar przekracza 256 KB:

Przykład podzielonej struktury logów

// First Split Log
{
  // insertId appended with an increasing number
  "insertId": "ABCDE-1",
  "jsonPayload": {
    "response": {
      "matches": [
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-0",
            // ...
          }
        },
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-1",
            // ...
            }
        }
      ]
    },
    "@type": "type.googleapis.com/maps.fleetengine.v1.SearchVehiclesLog",
    "request": {
      "searchTripTypes": [
        "EXCLUSIVE_TRIP"
      ],
      "pickupPoint": {},
      "count": 50,
      "pickupRadiusMeters": 400,
      "minimumCapacity": 1,
      "matchOrderBy": "PICKUP_POINT_ETA",
      "vehicleTypes": [
        {
          "vehicleCategory": "TAXI"
        }
      ]
    }
  },
  "resource": {
    "type": "fleetengine.googleapis.com/Fleet",
    "labels": {
      "resource_container": "projects/test-123",
      "location": "global"
    }
  },
  // Same timestamp
  "timestamp": "2024-02-06T22:48:50.620713Z",
  "logName": "projects/test-123/logs/fleetengine.googleapis.com%2Fsearch_vehicles",
  "receiveTimestamp": "2024-02-06T22:48:52.006308491Z",
  "split": {
    // UID for this logical log entry (same across splits)
    "uid": "ABCDE",
    "totalSplits": 2
  }
}
// Second Split Log
{
  // insertId appended with an increasing number
  "insertId": "ABCDE-2",
  "jsonPayload": {
    "response": {
      "matches": [
        {},{} // Previous matches appear as empty objects
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-2",
            // ...
          },
        }
      ]
    },
    "@type": "type.googleapis.com/maps.fleetengine.v1.SearchVehiclesLog",
    "request": {
      "searchTripTypes": [
        "EXCLUSIVE_TRIP"
      ],
      "pickupPoint": {},
      "count": 50,
      "pickupRadiusMeters": 400,
      "minimumCapacity": 1,
      "matchOrderBy": "PICKUP_POINT_ETA",
      "vehicleTypes": [
        {
          "vehicleCategory": "TAXI"
        }
      ]
    }
  },
  "resource": {
    "type": "fleetengine.googleapis.com/Fleet",
    "labels": {
      "resource_container": "projects/test-123",
      "location": "global"
    }
  },
  // Same timestamp
  "timestamp": "2024-02-06T22:48:50.620713Z",
  "logName": "projects/test-123/logs/fleetengine.googleapis.com%2Fsearch_vehicles",
  "receiveTimestamp": "2024-02-06T22:48:52.006308491Z",
  "split": {
    // UID for this logical log entry (same across splits)
    "uid": "ABCDE",
    // Subsequent logs after the original will have a zero based index
    "index": 1,
    "totalSplits": 2
  }
}

Uzyskiwanie dostępu do logów

Logi Cloud mają strukturę opartą na formacie LogEntry. Fleet Engine wysyła logi do Cloud Logging z wartością resource.type logEntry ustawioną na fleetengine.googleapis.com. Zapytania pozwalające na wyświetlanie logów możesz tworzyć w eksploratorze logów.

Aby na przykład wyświetlić wszystkie RPC w Fleet Engine, które zwróciły błąd, użyj tego zapytania Eksploratora logów:

resource.type:"fleetengine.googleapis.com"
severity=ERROR

Aby wyświetlić logi RPC wykonane z użyciem metody UpdateVehicle dla przykładowego-identyfikatora-projektu, użyj tego zapytania Eksploratora logów:

logName="projects/project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle"

Poniższy przykład pokazuje wpis LogEntry dla logu UpdateVehicle. Żądanie i odpowiedź RPC znajdują się w polu jsonPayload:

    {
      "insertId": "c6b85fbc927343fc8a85338c57a65733",
      "jsonPayload": {
        "request": {
          "header": {4},
          "updateMask": "deviceSettings",
          "vehicleId": "uniqueVehicleId",
          "vehicle": {2}
        },
        "response": {
          "name": "providers/example-project-id/vehicles/uniqueVehicleId",
          "availableCapacity": 2,
          "state": "VEHICLE_STATE_OFFLINE",
          "maximumCapacity": 2,
          "vehicleType": {1},
          "supportedTrips": {1}
        },
        "@type": "type.googleapis.com/maps.fleetengine.v1.UpdateVehicleLog"
      },
      "resource": {
        "type": "fleetengine.googleapis.com/Fleet",
        "labels": {2}
      },
      "timestamp": "2021-01-01T00:00:00.000000000Z",
      "labels": {2},
      "logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
      "receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
    }

W przypadku zwrócenia błędu RPC pole responseVehicle jest czyszczone, a pole errorResponse jest ustawiane i wypełniane w ramach jsonPayload:

    {
      "insertId": "c6b85fbc927343fc8a85338c57a65733",
      "jsonPayload": {
        "errorResponse": {
          "httpStatusCode": 404,
          "code": "NOT_FOUND",
          "message": "No entity with id invalidVehicleId exists"
        },
        "@type": "type.googleapis.com/maps.fleetengine.v1.UpdateVehicleLog",
        "request": {
          "vehicle": {3},
          "updateMask": "deviceSettings",
          "vehicleId": "fakeVehicleId",
          "header": {4}
        }
      },
      "resource": {
        "type": "fleetengine.googleapis.com/Fleet",
        "labels": {2}
      },
      "timestamp": "2021-01-01T00:00:00.000000000Z",
      "severity": "ERROR",
      "labels": {2}
      "logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
      "receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
    }

Więcej informacji o języku zapytań dotyczących logów znajdziesz w sekcji Język zapytań dotyczących logów . Więcej informacji o tym, jak używać logów do tworzenia wskaźników, znajdziesz w artykule Omówienie danych opartych na logach.

Zarządzaj kosztami logowania

Po włączeniu logowania musisz skonfigurować sposób kierowania, przechowywania i przechowywania logów. Jeśli przekroczysz limity wykorzystania i przechowywania bez opłat, Google Cloud może naliczyć dodatkowe opłaty za pozyskiwanie i przechowywanie logów. Możesz jednak kontrolować koszty rejestrowania, wykonując jedną z tych czynności:

Ogranicz użycie logów

Możesz ograniczyć pozyskiwanie danych dziennika, wykluczając określone wpisy w logu.

Eksportowanie lub kierowanie logów

Możesz kierować logi do innych miejsc docelowych w Google Cloud lub zewnętrznych, aby uniknąć domyślnych kosztów pozyskiwania danych i przechowywania danych. Aby uniknąć kosztów pozyskiwania logów, wyłącz pozyskiwanie logów w sposób opisany w następnej sekcji.

Wyłącz pozyskiwanie logów, aby uniknąć opłat

Zamiast wyłączania pozyskiwania logów preferowane jest ograniczenie wykorzystania logów albo ich eksportowanie lub kierowanie. Jeśli jednak nie chcesz używać logów Fleet Engine, możesz wyłączyć pozyskiwanie danych, aby uniknąć potencjalnych opłat za Cloud Logging. Domyślnie logi Fleet Engine są kierowane do domyślnego zasobnika logów.

To polecenie aktualizuje _Default zasobnik logów, tak aby nie przetwarzał logów Fleet Engine.

gcloud logging sinks update _Default \
--log-filter='NOT LOG_ID("cloudaudit.googleapis.com/activity") \
AND NOT LOG_ID("externalaudit.googleapis.com/activity") \
AND NOT LOG_ID("cloudaudit.googleapis.com/system_event") \
AND NOT LOG_ID("externalaudit.googleapis.com/system_event") \
AND NOT LOG_ID("cloudaudit.googleapis.com/access_transparency") \
AND NOT LOG_ID("externalaudit.googleapis.com/access_transparency") \
AND NOT resource.type:"fleetengine.googleapis.com"''

Więcej informacji znajdziesz w artykułach o wykluczeniach Cloud Logging i wykluczaniu logów. Eksporty Cloud Logging i eksportowanie logów

Używanie eksploratora logów

Aby użyć eksploratora logów, otwórz Cloud Console, wybierz Logowanie, a następnie Eksplorator logów. Aby wyświetlić listę wszystkich dostępnych logów Fleet Engine, kliknij typ zasobu Fleet Engine. Niektóre logi interfejsu API mają etykiety identyfikatora podróży oraz pojazdu. Możesz ich używać do wybierania dzienników podróży lub pojazdów, które Cię interesują.

Etykiety logu

Filtruj dzienniki według identyfikatora pojazdu

W eksploratorze logów możesz użyć tego zapytania, aby ograniczyć logi do konkretnego pojazdu:

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.vehicle_id="vehicle_id"

Filtruj pojazd

Filtruj logi według identyfikatora podróży

W eksploratorze logów możesz użyć tego zapytania, aby ograniczyć logi do określonej podróży:

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.trip_id=~"trip_id"

Filtrowanie dzienników pojazdu z wybranego okresu

W eksploratorze logów możesz użyć tego zapytania, aby ograniczyć logi do danych dotyczących pojazdu w danym okresie:

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.vehicle_id="vehicle_id"
    timestamp>="2020-09-24T20:00:00.000Z"
    timestamp<"2020-09-24T21:00:00.000Z"

Przykład wskaźników opartych na logach

Poniższy przykład pokazuje, jak za pomocą wskaźników opartych na logach śledzić liczbę podróży utworzonych w czasie.

  1. W konsoli Cloud wybierz Logowanie i Eksplorator logów, aby otworzyć eksplorator logów. Następnie zastosuj ten filtr:

    resource.type="audited_resource"
    resource.labels.method="maps.fleetengine.v1.TripService.ReportBillableTrip"
    
  2. W panelu Wyniki zapytania wybierz menu Działania, a następnie Utwórz wskaźnik.

    Utwórz wskaźnik

  3. W oknie „Edytor wskaźników”:

    • Podaj nazwę danych (np. billable_trips).
    • Określ opis danych (na przykład Liczba połączeń podlegających rozliczeniu w podróż).
    • Opcję Units (Jednostki) pozostaw pustą. _ W polu Typ pozostaw wartość Licznik.

    Następnie kliknij przycisk Utwórz wskaźnik.

  4. Na stronie Wskaźniki oparte na logach powinien pojawić się komunikat potwierdzający, że dane zostały utworzone. Nowy wskaźnik powinien pojawić się w sekcji wskaźników zdefiniowanych przez użytkownika. Wskaźnik będzie teraz wypełniany w miarę generowania pasujących logów.

  5. Wybierz pionowe menu po prawej stronie nowych danych i wybierz Wyświetl w narzędziu Metrics Explorer.

    Wyświetl dane

  6. W panelu po lewej stronie w sekcji Build Your Query (Utwórz zapytanie) ustaw typ zasobu na Fleet Engine (Mechanizm floty) i wyszukaj wskaźnik Billable_trips.

    Wyszukaj dane

    Wykres po prawej stronie pokazuje odsetek wywołań rozliczanych w ramach pola_trips.

Używaj BigQuery

BigQuery to zaawansowane narzędzie do przeprowadzania analiz. Można jej używać do przechowywania logów długoterminowych i wykonywania na danych doraźnych zapytań podobnych do SQL.

Kieruj logi do BigQuery

Aby można było korzystać z BigQuery, logi muszą być kierowane do magazynu danych BigQuery w ten sposób:

  1. W konsoli Cloud wybierz Logowanie, a następnie Eksplorator logów.

  2. Utwórz filtr, który izoluje logi Fleet Engine. W Eksploratorze pól logów wybierz typ zasobu Fleetengine.googleapis.com/Fleet.

    Utwórz
filtr

  3. W panelu Wyniki zapytania kliknij menu Działania i wybierz Utwórz ujście.

    Utwórz
ujście

  4. W oknie wyboru usługi ujścia kliknij Zbiór danych BigQuery.

    Wybierz ujście

  5. W oknie Edytuj ujście określ te opcje:

    • Określ nazwę ujścia (na przykład FleetEngineLogsSink).
    • W usłudze ujścia wybierz BigQuery.
    • Wybierz opcję Użyj tabel partycjonowanych. Zwiększy to wydajność zapytań.
    • W sekcji Miejsce docelowe ujścia wybierz Utwórz nowy zbiór danych BigQuery i podaj nazwę zbioru danych BigQuery (na przykład FleetEngineLogs).
    • Kliknij przycisk Utwórz ujście.

    Edytuj ujście

Logi powinny teraz zacząć wypełniać zbiór danych BigQuery. Dane są widoczne w sekcji BigQuery w konsoli Cloud.

Sekcja BigQuery

Kilka tabel w zbiorze danych FleetEngineLogs zostanie uzupełnionych automatycznie, po jednej dla każdego typu logów:

  • CreateVehicle
  • GetVehicle
  • ListVehicles
  • SearchVehicles
  • UpdateVehicle
  • CreateTrip
  • GetTrip
  • UpdateTrip
  • ListTrips

Nazwy tabel są zgodne z tym wzorcem:

project_id.data_set.log_name

Jeśli na przykład projekt nazywa się test_project, a nazwa zbioru danych to test_project, tabela CreateTrip ma taką nazwę:

test_project.FleetEngineLogs.fleetengine_googleapis_com_create_trip

Przykładowe zapytania

W tej sekcji znajdziesz przykłady zapytań, które możesz tworzyć.

Podróże utworzone na godzinę

To zapytanie zlicza liczbę logów CreateTrips i grupuje je według godziny.

    SELECT TIMESTAMP_TRUNC(timestamp, HOUR) as hour,
           count(*) as num_trips_created
    FROM
    `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_create_trip`
    GROUP BY hour
    ORDER by hour

Liczba przesiadek na pojazd na godzinę

To zapytanie generuje liczbę przystanków obsłużonych przez pojazd z podziałem na godziny.

Może to np. oznaczać, że w ciągu ostatniej godziny:

  • Pojazd A przejechał 10 przystanków w ciągu 12 godzin i 8 przystanków w ciągu godziny 13.
  • Pojazd B miał 5 przesiadek w ciągu 11 godzin i 7 przesiadek w ciągu godziny 12.
  • Pojazd C miał 12 przesiadek w ciągu 13 godzin i 9 przesiadek w ciągu godziny 14.

    SELECT
      jsonpayload_v1_updatevehiclelog.request.vehicleid AS vehicle,
      TIMESTAMP_TRUNC(timestamp, HOUR) AS hour,
      COUNT(*) AS num_stops
    FROM
      `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update__vehicle`
    WHERE
    ARRAY_LENGTH(jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments) > 0
    AND jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments[
    OFFSET
    (0)].stop.state = 'VEHICLE_STOP_STATE_LOG_ARRIVED'
    GROUP BY
    1,
    2
    ORDER BY
    2
    

Panele Studia danych

BigQuery można zintegrować z narzędziami do analityki biznesowej. Ponadto można tworzyć panele do analizy biznesowej.

Z przykładu poniżej dowiesz się, jak utworzyć panel, na którym możesz zwizualizować na mapie ślady i ruchy pojazdów.

  1. Uruchom nowy panel Studia danych i jako połączenie danych wybierz BigQuery.

    Łączenie danych

  2. Wybierz Zapytanie niestandardowe i wskaż projekt Cloud, do którego ma być ono przypisane.

    Wybierz projekt

  3. W polu zapytania wpisz podane niżej zapytanie.

    Wpisz zapytanie

    SELECT
     timestamp,
     labels.vehicle_id,
    jsonpayload_v1_updatevehiclelog.response.lastlocation.location.latitude AS lat,
    jsonpayload_v1_updatevehiclelog.response.lastlocation.location.longitude AS lng
    FROM
    `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update_vehicle`
    
  4. Jako typ wykresu wybierz Mapa bąbelkowa, a potem wybierz pole lokalizacji.

    Typ
wykresu

  5. Wybierz Utwórz pole.

    Utwórz
pole

  6. Nazwij pole i dodaj tę formułę: CONCAT(lat, ",", lng).

    Następnie ustaw typ na Geo->Szerokość, długość geograficzna.

    Ustaw typ

  7. Do panelu możesz dodać elementy sterujące umożliwiające filtrowanie danych. Wybierz np. filtr Zakres dat.

    Dodaj elementy sterujące

  8. Aby wybrać domyślny zakres dat, edytuj pole zakresu dat.

    Zakres
dat

  9. Możesz dodać dodatkowe elementy do listy rozwijanej w przypadku pola device_id.

    Lista

Za pomocą tych elementów sterujących możesz wizualizować ruch pojazdu lub ruch na trasie.