Gelieferte Hafenankünfte und -abfahrten werden mit dem nächsten Schiff, dessen ETA oder ETD, Anfahrtsentfernung und Liegeplatz präsentiert. Primetime-Behandlung umfasst einen sanften Countdown-Eintritt, cyanfarbene maritime Akzente und einen langsamen Hafenpoller-Hintergrund. Tafeln, die mehr Schiffe halten als passen, blättern alle zehn Sekunden um. Leise Hinweise unterscheiden frische Daten von geplanten Zeiten. "Jetzt fällig" bleibt eine Schätzung, und das Überschreiten einer ETA ändert den gelieferten Schiffsstatus nicht.
Live-Karte
Kategorie: Öffentliche Informationen. Tags: Verkehr und Reisen, Zeitpläne.
Layouts
Diese Vollbildkarte füllt den gesamten Bildschirm im Quer- oder Hochformat und wird nicht als Ecke, Chip oder Streifen platziert.
Layouts: voll. Formulare: Querformat, Hochformat.
Kartenlayouts, Designs und Veröffentlichung. Karten durchsuchen.
Daten und Datenschutz
Feed: screenrig.vessels/v1.
Feed-Dokumente tragen Quellenangaben. Der Player liefert den Feed an die Karte.
Eigenschaften
Für Thema, Hintergrund, Akzent und Position siehe Gemeinsame Eigenschaften.
Legen Sie statische Eigenschaften in den params der Karte fest, wenn Sie sie erstellen. Ihr Datendokument enthält nur dynamische Eigenschaften. Verschachtelte Zeilen beschreiben den Inhalt ihrer übergeordneten Eigenschaft.
Statische Eigenschaften
| Name | Typ | Standard | Werte und Grenzwerte | Beschreibung |
|---|---|---|---|---|
title | string | "Vessel traffic" | maxLength: 40 | |
port | string | "" | maxLength: 40 | Der Name des Ports, wenn der Feed keinen trägt. |
windowHours | integer | 12 | Minimum: 1; Maximum: 48 | Schiffe, die später als diese erwartet werden, werden ausgelassen. |
count | integer | 5 | Minimum: 2; Maximum: 8 | Die meisten Schiffe in den Ankunfts- und Abfahrtlisten. |
maxDistanceKm | integer | 50 | Minimum: 5; Maximum: 500 | Die Länge der Anfahrtsbahn: die Entfernung, bei der ein Schiff sie beginnt. |
units | string | "nautical" | "nautical", "metric", "imperial" | Nautisch: nm und kn. Metrisch: km und km/h. Imperial: mi und mph. |
staleMinutes | integer | 15 | Minimum: 1; Maximum: 1440 | |
hour12 | boolean | false | ||
backgroundColor | String, Null | null | Muster: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$" | Überschreibt den Kartenhintergrund und die Platte mit einer flachen, CSS-geordneten Farbe. #RRGGBBAA gibt die Deckkraft an. Hintergrund none hat Vorrang. |
textColor | String, Null | null | Muster: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$" | Überschreibt die Haupt- und Sekundärtextfarben. Akzent- und semantische Statusfarben behalten ihre Funktion. |
Dynamische Eigenschaften
| Name | Typ | Standard | Werte und Grenzwerte | Beschreibung |
|---|---|---|---|---|
vessels | array | [] | minItems: 0; maxItems: 100 | Schiffe, die am Hafen ankommen oder ihn verlassen. Ein Feed (screenrig.vessels/v1) hat Vorrang, wenn vorhanden; ansonsten liefert der Datenspeicher dieselben Zeilen. |
vessels[].id | string | maxLength: 40 | ||
vessels[].name | string | minLength: 1; maxLength: 40; Pflichtfeld | ||
vessels[].type | string | maxLength: 30 | Schiffstyp, zum Beispiel Containerschiff. | |
vessels[].flag | string | maxLength: 30 | ||
vessels[].lengthM | number | Minimum: 1; Maximum: 500 | ||
vessels[].from | string | maxLength: 40 | Abfahrtsort für eine Ankunft. | |
vessels[].to | string | maxLength: 40 | Nächster Hafen für eine Abfahrt. | |
vessels[].berth | string | maxLength: 40 | ||
vessels[].eta | string | maxLength: 32 | Ankunftszeit, ISO 8601. | |
vessels[].etd | string | maxLength: 32 | Abfahrtszeit, ISO 8601. | |
vessels[].status | string | "underway", "anchored", "berthed", "departing" | Ein angedocktes oder abfahrendes Schiff mit einer geplanten Abfahrtszeit ist eine Abfahrt. | |
vessels[].distanceKm | number | Minimum: 0; Maximum: 5000 | Entfernung zum Hafen. | |
vessels[].speedKt | number | Minimum: 0; Maximum: 60 | ||
updated | string | "" | maxLength: 32 | Wenn die Positionen abgerufen wurden, ISO 8601 (nur Datenspeicher; ein Feed enthält fetchedAt). |
Canvas-Beispiel
Speichern Sie die statischen Eigenschaften als params.json und erstellen Sie die Karte. Das Ergebnis enthält ihre crd_ ID.
{
"theme": "neomustard"
}
screenrig card create --type vessel-traffic --major 1 --file params.json
Fügen Sie diesen Eintrag den primitives einer Playlist-Seite hinzu, mit dieser ID anstelle der Beispiel-ID. Veröffentlichen Sie die Playlist und weisen Sie einen Bildschirm zu.
{
"id": "vessel-traffic",
"primitive": "card",
"card": "crd_01EXAMPLECARD000000000",
"layout": "full",
"content_fit": "fill"
}
Live-Daten schreiben
Schreiben Sie das Dokument nach dem Erstellen in die Karte und ersetzen Sie es dann, um den Bildschirm ohne erneute Veröffentlichung zu aktualisieren. Die Karte prüft jeden Schreibvorgang gegen ihre dynamischen Eigenschaften und lehnt ein Dokument ab, das sie nicht akzeptiert. Verwenden Sie dasselbe Projekt wie die Playlist.
Speichern Sie das Dokument als card-data.json. Die CLI liest das Dokument selbst, ohne Wrapper:
{
"vessels": [],
"updated": ""
}
screenrig card data put crd_01EXAMPLECARD000000000 --file card-data.json
Oder rufen Sie die API direkt auf. Die API verpackt dasselbe Dokument in ein document-Feld. Ein Agent-Token benennt bereits sein Projekt, daher wird kein Projekt-Header gesendet; wenn Sie ScreenRig-Project senden, muss es zum Token-Projekt passen. Stellen Sie Ihre API-Autorisierung über die Umgebung bereit; siehe API-Authentifizierung.
curl --request PUT "https://api.screenrig.ai/api/cards/crd_01EXAMPLECARD000000000/data" \
--header "Authorization: Bearer $SCREENRIG_TOKEN" \
--header "Content-Type: application/json" \
--data '{"document":{"vessels":[],"updated":""}}'