Übersicht
GitHub:
https://github.com/brianmcleer/time-machine-widget
Time Machine ist ein benutzerdefiniertes Widget für ArcGIS Experience Builder Developer Edition 1.19 und höher (getestet mit 1.21). Es platziert einen Datumsregler auf der Karte und lässt alle datierten Layer diesem folgen. Ziehen Sie den Regler auf ein Datum, und die Karte zeigt, was an diesem Tag vorhanden war.
Zeitaktivierte Dienste sind nicht erforderlich. Das Widget liest die Felder jedes Layers aus, wählt das Datumsfeld aus und wendet zusätzlich zum bereits vorhandenen Layer-Filter einen weiteren Filter an. Feature-Layer werden in der Browser-Layer-Ansicht gefiltert. Kartenbild-Layer mit datierten Sublayern werden mithilfe eines Definitionsausdrucks gefiltert und nach jeder Änderung wird ein neues Bild angefordert.
Wir haben es für unsere Annexion-Geschichte entwickelt, die bis ins Jahr 1882 zurückreicht und in einem Kartendienst mit einem Sublayer pro Jahr oder Jahrzehnt gespeichert ist. Es funktioniert auch mit einem einzelnen Feature-Layer mit einem Datumsfeld.
(Entschuldigung für den Screenshot, die neue Esri Community akzeptiert keine Videodateien)
Funktionen
- Modi „Stichtag“, „Zeitraum“ und „Vergleichen“. Im Vergleichsmodus werden zwei Daten nebeneinander angezeigt, getrennt durch einen verschiebbaren Trennbalken.
- Schrittweise nach Tag, Monat oder Jahr oder in Intervallen von jeweils N Tagen, Monaten oder Jahren – über eine erweiterte Option. Wiedergabe mit Geschwindigkeitsregelung, Schleife, Zurücksetzen und Heute sowie „Vorherige Änderung“ und „Nächste Änderung“, um zu Daten zu springen, an denen etwas passiert ist.
- Der Bereich des Reglers ergibt sich aus den Daten: Er umfasst die ältesten und neuesten Datumsangaben der eingeschalteten Layer und wird angepasst, wenn Layer in der Karte ein- oder ausgeschaltet werden.
- Aktivitätsdiagramm mit der Anzahl der Features pro Jahr oder Monat auf beiden Achsen.
- Eine Layer-Liste zeigt, welche Layer dem Regler folgen, welches Datumsfeld sie verwenden und warum ein Layer übersprungen wurde.
- Präsentationsmodus: ein großes Datumsbanner auf der Karte mit Wiedergabe, Kapiteln, einem Kapitelfeld mit Miniaturansichten, einem Spotlight, Zeichnen auf der Karte, Schwarz-Weiß-Bildschirm, Vorlesen, einem Präsentationsfenster mit Notizen und Uhr, Tastenkombinationen, Kiosk-Links und einer Geschwindigkeitsregelung. Kapitel können Layer, eine Grundkarte, einen Ort, einen Flug oder einen Schnitt, ein Feature-Popup und eine Anzeigedauer festlegen. Farben, Schriftart und Logo des Banners werden im Builder eingestellt.
- Story-Kapitel, die zur Laufzeit aus der aktuellen Ansicht erstellt oder anhand der aktivsten Jahre in den Daten generiert werden, mit Export als Web-Diashow, WebM-Video oder XML für den Builder.
- Builder-Einstellungen mit einem aus der Karte ausgelesenen Layer-Auswahlfeld (Gruppen-Layer werden als Überschriften angezeigt), Regeln für Layer, die im Auswahlfeld nicht sichtbar sind, Jahressätzen für Gruppen jährlicher Momentaufnahmen, Abschnitten für Leistung, Präsentation und Branding sowie XML-Import und -Export der gesamten Konfiguration.
- Integrierte Hilfe, Hinweis beim ersten Start, Tastaturbedienung und Ankündigungen für Screenreader durchgehend.
Voraussetzungen
- Experience Builder Developer Edition 1.19 oder höher, React 19. Getestet mit 1.21 und Maps SDK 5.x.
- Keine Abhängigkeiten von Drittanbietern. Alles stammt aus Experience Builder.
Installation
- Laden Sie die ZIP-Datei aus der neuesten GitHub-Version herunter (hier ebenfalls angehängt).
- Kopieren Sie den
time-machine-Ordner nach client\your-extensions\widgets\ sodass sich die Datei manifest.json direkt in widgets\time-machine\ befindet. Legen Sie den Ordner nicht eine Ebene tiefer ab. - Führen Sie
pnpm install (ab Version 1.21) oder npm install (Version 1.20 und früher) im Ordner client aus und starten Sie den Client neu. - Fügen Sie Time Machine zu einer Experience hinzu und wählen Sie das Karten-Widget aus, das damit gesteuert wird.
Die ZIP-Datei enthält nur das Widget. Die Visual-Studio-Editor-Shims im Repository sind absichtlich nicht enthalten, da sich ihre Ambient-Moduldeklarationen auf jedes andere Widget in Ihrem Ordner your-extensions auswirken würden. Wenn Sie stattdessen das Repository klonen, löschen Sie diese Dateien vor dem Erstellen; sie sind in der README aufgeführt.
Bekannte Einschränkungen
- Kachel-Layer und Bilddaten werden ausschließlich über Jahressätze gesteuert (Gruppen-Layer, deren untergeordnete Layer nach Jahren benannt sind).
- Ein Kartendienst zeichnet pro Änderung ein Bild. Daher zeigt die Wiedergabe bei einem langsamen Dienst weniger Bilder als Schritte an. Das Datum läuft im gewählten Tempo weiter, und die Karte zeigt das neueste Datum, das sie darstellen kann.
- Im clientseitigen Modus werden pro Layer höchstens so viele Features wie im Builder festgelegt eingelesen (standardmäßig 50.000). Bei größeren Layern werden Serverstatistiken für den Bereich verwendet.
- Zum Vorlesen werden die Stimmen des Browsers verwendet; zuvor muss einmal auf die Seite geklickt werden. Der Videoexport erfolgt im WebM-Format.
Feedback
Issues und Pull Requests auf GitHub sind willkommen. Wenn ein Layer übersprungen wird oder der Bereich falsch aussieht, erklärt die Layer-Liste im Widget den Grund. In der Browserkonsole gibt es außerdem eine Zeile mit dem Anfang [time-machine] und weiteren Informationen.
Änderungsprotokoll
12.10.2026: Das Widget übernimmt jetzt die Sprache der App (?locale=, den Sprachumschalter, das ArcGIS-Profil oder den Browser) und unterstützt 39 Sprachen, einschließlich der Hilfe.
- Zuerst Esri. Das Tool liest die Übersetzungen aus, die bereits in Ihrer Experience-Builder-Installation vorhanden sind. So wird eine Formulierung wie „Zoom to“ so übersetzt, wie Esris eigene Widgets sie wiedergeben.
- Gängige Fachbegriffe.Bezeichnungen für Einheiten wie Fuß und Acres stammen aus Unicode CLDR, denselben Daten, die auch Browser verwenden.
- Gemeinsamer Übersetzungsspeicher.Alles Übrige stammt aus einem gemeinsamen Wörterbuch, das mit LibreTranslate, einem Open-Source-Übersetzungsprogramm, sowie den Opus-MT-Modellen von Helsinki-NLP für Bosnisch, Kroatisch und Serbisch erstellt wurde. Es läuft kostenlos auf GitHub – Sie benötigen also weder einen API-Schlüssel noch ein Konto.
- Einbindung. Das Tool findet außerdem englische Texte, die außerhalb der Übersetzungsdatei des Widgets fest codiert sind – etwa eine Standardeinstellung oder eine Hilfe – und bindet sie ein, damit auch sie übersetzt werden.
Manuelle Korrekturen haben immer Vorrang vor der maschinellen Übersetzung und werden nie überschrieben. Einige Übersetzungen stammen von einer Maschine. Wenn Ihnen eine unpassende Formulierung auffällt, antworten Sie hier mit einem besseren Vorschlag.
25.09.2026: 1.0.0. Erste öffentliche Veröffentlichung auf GitHub mit ZIP-Datei.