Aperçu
GitHub :
https://github.com/brianmcleer/time-machine-widget
Time Machine est un widget personnalisé pour ArcGIS Experience Builder Developer Edition 1.19 et versions ultérieures (testé sur 1.21). Il place un curseur de date sur la carte et fait en sorte que chaque couche datée le suive. Faites glisser jusqu'à une date et la carte affiche ce qui s'y trouvait à cette date.
Il ne nécessite pas de services activés pour le temps. Le widget lit les champs de chaque couche, choisit le champ de date, et applique un filtre en plus de celui déjà présent sur la couche. Les couches d'entités sont filtrées dans la vue de la couche dans le navigateur. Les couches d'images cartographiques avec sous-couches datées sont filtrées avec une expression de définition et demandent une nouvelle image après chaque changement.
Nous l'avons conçu pour notre histoire d'annexion, qui remonte à 1882 et se trouve dans un service cartographique avec une sous-couche par année ou décennie. Il fonctionne aussi sur une seule couche d'entités avec un champ de date unique.
(Désolé pour la capture d'écran, la nouvelle Esri Community n'accepte pas les fichiers vidéo)
Ce qu'il fait
- Modes As of, Range et Compare. Compare affiche deux dates côte à côte derrière un séparateur que vous pouvez faire glisser.
- Avancez par jour, mois ou année, ou tous les N de ceux-ci via une option Avancée. Jouez avec la vitesse, la boucle, Réinitialiser et Aujourd'hui, ainsi que Changement précédent et Changement suivant pour sauter entre les dates où quelque chose s'est produit.
- La plage du curseur provient des données : elle s'ajuste aux dates les plus anciennes et les plus récentes des couches activées et se réajuste lorsque des couches sont activées ou désactivées dans la carte.
- Graphique d'activité avec entités par année ou mois sur les deux axes.
- Une liste de couches qui montre quelles couches suivent le curseur, quel champ de date chacune utilise, et pourquoi une couche a été ignorée.
- Mode présentation : une grande bannière de date sur la carte avec lecture, chapitres, une grille de chapitres avec vignettes, un projecteur, dessin sur la carte, écran noir et blanc, lecture à voix haute, une fenêtre présentateur avec notes et horloge, raccourcis clavier, liens kiosque et un bouton de vitesse. Les chapitres peuvent définir des couches, fond de carte, un lieu, un vol ou une coupe, une fenêtre contextuelle d'entité et un temps de maintien. Couleurs, police et logo pour la bannière sont définis dans le builder.
- Chapitres d'histoire créés à l'exécution depuis la vue actuelle, ou générés à partir des années les plus actives dans les données, avec export vers un diaporama web, une vidéo WebM ou XML pour le builder.
- Paramètres du builder avec un sélecteur de couches lu depuis la carte (couches groupées comme titres), règles pour les couches invisibles au sélecteur, ensembles d'années pour groupes de clichés annuels, sections performance, présentation et branding, ainsi qu'import/export XML de toute la configuration.
- Guide d'aide intégré au widget, indice au premier lancement, accès clavier et annonces pour lecteur d'écran partout.
Exigences
- Experience Builder Developer Edition 1.19 ou ultérieur, React 19. Testé sur 1.21 avec Maps SDK 5.x.
- Aucune dépendance tierce. Tout provient d'Experience Builder.
Installation
- Téléchargez le zip depuis la dernière version GitHub (également joint ici).
- Copiez le dossier
time-machine dans client\your-extensions\widgets\ afin que manifest.json soit directement à l'intérieur de widgets\time-machine\. Ne le placez pas à un niveau plus profond. - Exécutez
pnpm install (1.21 et versions ultérieures) ou npm install (1.20 et versions antérieures) dans le dossier client puis redémarrez le client. - Ajoutez Time Machine à une expérience et sélectionnez le widget carte qu'il contrôle.
Le zip contient uniquement le widget. Les shims éditeur Visual Studio dans le dépôt sont volontairement exclus car leurs déclarations de modules ambiants affecteraient tous les autres widgets dans votre dossier your-extensions. Si vous clonez le dépôt à la place, supprimez ces fichiers avant de construire ; ils sont listés dans le README.
Limites connues
- Les couches tuiles et images ne sont pilotées que via des ensembles d'années (couches groupées dont les enfants sont nommés par année).
- Un service cartographique dessine une image par changement ; donc sur un service lent Play affiche moins d'images que d'étapes. La date garde son rythme et la carte montre la date la plus récente possible.
- Le mode côté client lit jusqu'à une limite du builder en nombre d'entités par couche (50 000 par défaut). Les couches plus grandes utilisent des statistiques serveur pour la plage.
- La lecture à voix haute utilise les voix du navigateur et nécessite un clic initial sur la page. L'export vidéo est en WebM.
Retour d'information
Les problèmes et demandes de tirage sont bienvenus sur GitHub. Si une couche est ignorée ou si la plage semble incorrecte, la liste des couches dans le widget explique pourquoi, et la console du navigateur affiche une ligne commençant par [time-machine], qui donne plus d'informations.
Journal des modifications
- 25 septembre 2026 : 1.0.0. Première version publique sur GitHub avec un zip de release.