Avec Arcade, vous avez la flexibilité de travailler avec vos champs de date de plusieurs manières, personnaliser les seuils et même calculer vos propres nouvelles dates dérivées. Lisez la suite pour apprendre comment construire cette carte exacte par vous-même pour commencer.<\/P>
Tout d'abord, configurons la carte. Ouvrez une nouvelle webmap, cliquez sur Ajouter >> Parcourir les couches Living Atlas >> et recherchez "MODIS". Le premier résultat devrait être une couche d'entités "Satellite (MODIS) Thermal Hotspots and Fire Activity" par Esri. Allez-y et ajoutez cette couche à votre carte. Dans le volet Contenu, cliquez sur le bouton filtre pour la couche MODIS et définissez un filtre pour "Date d'acquisition dans les derniers 1 jour(s)". Appliquez le filtre. Cela filtrera les hotspots pour qu'ils soient dans les dernières 24 heures. Maintenant cliquez sur Fond de carte en haut, et sélectionnez le fond de carte Dark Gray Canvas. Il est maintenant temps d'utiliser Arcade pour construire notre propre symbologie du temps relatif pour les hotspots.<\/P>
Pour la couche MODIS, cliquez sur le bouton Modifier le style. Développez "Choisir un attribut à afficher", faites défiler jusqu'en bas de la liste des champs et cliquez sur "Nouvelle expression". Cela lancera le générateur d'expression Arcade. Collez le code suivant dans le corps de l'expression.<\/P>
<SPAN class="keyword token">function<\/SPAN> <SPAN class="token function">determineCategory<\/SPAN><SPAN class="punctuation token">(<\/SPAN>value<SPAN class="punctuation token">)<\/SPAN><SPAN class="punctuation token">{<\/SPAN>
<SPAN class="keyword token">if<\/SPAN> <SPAN class="punctuation token">(<\/SPAN>value <SPAN class="operator token"><=<\/SPAN> <SPAN class="number token">4<\/SPAN> <SPAN class="punctuation token">)<\/SPAN><SPAN class="punctuation token">{<\/SPAN>
<SPAN class="keyword token">return<\/SPAN> <SPAN class="string token">\"1\"<\/SPAN>
<SPAN class="punctuation token">}<\/SPAN>
<SPAN class="keyword token">else<\/SPAN> <SPAN class="keyword token">if<\/SPAN> <SPAN class="punctuation token">(<\/SPAN>value <SPAN class="operator token">><\/SPAN> <SPAN class="number token">4<\/SPAN> <SPAN class="operator token">&&<\/SPAN> value <SPAN class="operator token"><=<\/SPAN> <SPAN class="number token">8<\/Span><span class=\"punctuation token\">)<span class=\"punctuation token\">{</span>
<span class=\"keyword token\">return</span> <span class=\"string token\">\"2\"</span>
<span class=\"punctuation token\">}</span>
<span class=\"keyword token\">else</span> <span class=\"keyword token\">if</span> <span class=\"punctuation token\">(</span>value <span class=\"operator token\">></span> <span class=\"number token\">8</span> <span class=\"operator token\">&&</span> value <span class=\"operator token\"><=</span> <span class=\"number token\">12</span><span class=\"punctuation token\">)</span><span class=\"punctuation token\">{</span>
<span class=\"keyword token\">return</span> <span class=\"string token\">\"3\"</span>
<span class=\"punctuation token\">}</span>
<span class=\"keyword token\">else</span> <span class=\"keyword token\">if</span> <span class=\"punctuation token\">(</span>value <span class=\"operator token\">></span> <span class=\"number token\">12</span> <span class=\"operator token\">&&</span> value <span class=\"operator token\"><=</span> <span class=\"number token\">16</span><span class=\"punctuation token\">)</span><span class=\"punctuation token\">{</span>
<span class=\"keyword token\">return</span> <span class=\"string token\">\"4\"</span>
<span class=\"punctuation token\">}</span>
<span class=\"keyword token\">else</span> <span class=\"keyword token\">if</span> <span class=\"punctuation token\">(</span>value <span class=\"operator token\">></span> <span class=\"number token\">16</span> <span class=\"operator token\">&&</span> value <span class=\"operator token\"><=</span> <span class=\"number token\">20</span><span class=\"punctuation token\">)</spa... image-2 j-img-centered j-img-original" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/483413_firefly.jpg" style="display: block; margin-left: auto; margin-right: auto;" \/><\/P><P>Sélectionnez le plus intense sur la rampe (le plus à droite), et réglez la taille à 36. Répétez ce processus pour les autres catégories, en allant vers la gauche sur la rampe, et en diminuant la taille de 6 à chaque fois (par exemple 36, 30, 24, 18, 12 et 6). Une fois que tous vos symboles sont configurés comme vous le souhaitez, allez-y et jouez avec le curseur de Transparence dans le volet Style pour affiner l'apparence que vous recherchez. Une fois tout terminé, votre volet Style devrait ressembler à ceci :<\/P><P><IMG __jive_id="483427" alt="Symbol Pane" class="jive-emoji jive-image image-3 j-img-centered j-img-original" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/483427_symbolpane.jpg" style="display: block; margin-left: auto; margin-right: auto;" \/><\/P><P><\/P><P>Cliquez sur OK pour tout verrouiller. Et, <EM>voila!<\/EM> Vous devriez maintenant avoir une carte des points chauds MODIS qui vieillissent dans le temps en fonction de l'heure actuelle. Excellent travail ! N'oubliez pas non plus de sauvegarder votre carte !<\/P><P><\/P><H3 id="toc-hId-818006326" id="toc-hId-818006326">Incorporation du temps relatif dans les popups<\/H3><P>Vous pouvez également configurer des expressions de temps relatif dans vos popups et transformer une date et heure précises en quelque chose d'un peu plus convivial. Par exemple, revenez à la carte d'exemple fournie vers le début de ce post. Si vous cliquez sur un point chaud, dans le popup vous verrez la date et l'heure exactes ainsi qu'une expression relative comme "il y a 2 heures et 5 minutes". Cette seconde partie est également calculée à la volée par Arcade. <\/P><P><\/P><P>Pour configurer cela dans votre propre carte, ouvrez le volet "Configurer Popup" pour la couche MODIS Hotspot. Cliquez sur "AJOUTER" sous la section Expressions d'attributs. Cela lancera un autre générateur d'expressions Arcade. Collez le code suivant dans le bloc Expression :<\/P><P><\/P><PRE class="lia-code-sample line-numbers language-none"><CODE><SPAN class="keyword token">var<\/SPAN> myDateField <SPAN class="operator token">=<\/SPAN> $feature<SPAN class="punctuation token">[<\/SPAN><SPAN class="string token">"ACQ_DATE"<\/SPAN><SPAN class="punctuation token">]<\/SPAN><SPAN class="punctuation token">;<\/SPAN>\n\n<SPAN class="keyword token">function<\/SPAN> <SPAN class="token function">getTimeDelta<\/SPAN><SPAN class="punctuation token">(<\/SPAN>alertDate<SPAN class="punctuation token">)<\/SPAN><SPAN class="punctuation token">{<\/SPAN>\n <SPAN class="keyword token">var<\/SPAN> minutes <SPAN class="operator token">=<\/SPAN> <SPAN class="token function">DateDiff<\/SPAN><SPAN class="punctuation token">(<\/SPAN><SPAN class="token function">now<\/SPAN><SPAN class="punctuation token">(<\/SPAN><SPAN class="punctuation token">)<\/SPAN><SPAN class="punctuation token">,<\/SPAN>alertDate<SPAN class="punctuation token">,<\/SPAN> <SPAN class="string token">"minutes"<\/SPAN><SPAN class="punctuation token">)<\/SPAN>\n <SPAN class="keyword token">var<\/SPAN> hours <SPAN class="operator token">=<\/SPAN> <SPAN class="token function">DateDiff<\/SPAN><SPAN class="punctuation token">(<\/SPAN><SPAN class="token function">now<\/Span><span class="punctuation token">(<span class="punctuation token"></span>)</span>,alertDate<span class="punctuation token">,</span> <span class="string token">"hours"</span>)
<span class="keyword token">var</span> days <span class="operator token">=</span> <span class="token function">DateDiff</span>(<span class="token function">now</span>(<span class="punctuation token"></span>),alertDate<span class="punctuation token">,</span> <span class="string token">"days"</span>)
<span class="keyword token">if</span> (<span class="punctuation token">minutes <= 120</span>) {
<span class="keyword token">return</span> <span class="token function">round</span>(minutes) + " minutes ago"
}
<span class="keyword token">if</span> (<span class="punctuation token">minutes > 120</span>) {
<span class="keyword token">if</span> (<span class="punctuation token">hours <= 48</span>) {
<span class="keyword token">var</span> tFloor = <span class="token function">floor</span>(hours)
<span class="keyword token">var</span> deltaMin = <span class="token function">datediff</span>(<span class="token function">now</span>(),<span class="token function">dateadd</span>(alertDate,tFloor,'hours'), 'minutes')
<span class="keyword token">return</span> <span class="token function">round</span>(tFloor) + " hours and " + <span class="token function">round</span>(deltaMin) + " minutes ago"
}
<span class="keyword token">if</span> (<span class="punctuation token">hours > 48</span>) {
<span class="keyword token">var</span> dFloor = <span class="token function">floor</span>(days)
<span class="keyword token">var</span> deltaHour = <span class="token function">datediff</span>(<span class="token function">now</span>(),<span class="token function">dateadd</span>(alertDate,dFloor,'days'), 'hours')
<span class="keyword token">return</span> <span class="token function">round</span>(dFloor) + " days and " + <span class="token function">round</span>(deltaHour) + " hours ago"
}
}
}
<span class='keyword'>return </class='function'>getTimeDelta(myDateField)<SPan clasS='line-numbers-rows'><SPan</SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPan><SPan></SPAn ><SpAn <<EmoJi_20 > ></SpAn ><SpAn <<EmoJi_21 > ></SpAn ><SpAn <<EmoJi_22 > ></SpAn ><SpAn <<EmoJi_23 > ></SpAn ></Span>< / P >< P >Cette expression examinera le delta temporel entre l'heure actuelle et la date dans le champ et utilisera une logique conditionnelle pour construire une expression conviviale de ce delta. Cette expression est également conçue pour fonctionner avec les jours, mais puisque nous avons configuré nos points chauds pour ne voir que les dernières 24 heures, nous ne verrons pas cela. Mais vous pouvez utiliser cette expression comme modèle pour d'autres couches avec lesquelles vous souhaitez travailler. Dans ce cas, la seule chose que vous devrez faire est de changer la partie $feature["ACQ_DATE"] < / EM > pour pointer vers un champ de date dans votre couche. < / P >< P >< / P >< P >Cliquez sur Tester pour vérifier que cela fonctionne, suivi d'un clic enthousiaste sur le bouton "OK". À partir de là, configurez les popups comme vous le souhaitez, en vous assurant que l'expression que vous avez créée est visible. L'expression agit comme un champ, donc vous pouvez la voir comme faisant partie d'un style popup par défaut ou la configurer comme faisant partie d'un affichage d'attribut personnalisé.<\/P><\/P>
<\/P><\/P>Arcade vous offre la flexibilité de personnaliser la manière dont les informations sont transmises à votre audience sans nécessiter de modifier le schéma de vos données ni d'exécuter des calculs de champ constants. Les représentations temporelles ne sont qu'un cas d'utilisation de cela. Espérons que cela vous donne un point de départ pour explorer ce qui est possible. Merci de votre lecture !<\/P><\/BODY><\/HTML>