HOW TO
ArcGIS Arcade ist eine Ausdrucks-Sprache, die zum Konfigurieren von Pop-ups in Portal for ArcGIS Map Viewer verwendet werden kann. Die Arcade-Datumsfunktionen stellen Methoden zum Erstellen von Datumsobjekten und Abrufen verschiedener Eigenschaften der Objekte dar. Zum Beispiel werden die Funktionen "DateAdd()" und "DateDiff()" zum Anpassen des Datums basierend auf einem bestimmten Intervall verwendet, und die Funktion "Now()" wird zum Abrufen der aktuellen lokalen Uhrzeit des Clients verwendet.
In diesem Artikel werden die Schritte zum Berechnen der Differenz zwischen zwei Datumsfeldern im Pop-up in Portal for ArcGIS Map Viewer beschrieben. In diesem Beispiel wird die angezeigte Anzahl der Tage seit der letzten Hydranteninspektion ermittelt, indem die Feldwerte im Feld "Date Inspected" (wie in der folgenden Abbildung zu sehen) und die aktuelle lokale Uhrzeit des Clients referenziert werden.
var <variableName> = Now() var <variableName1> = $feature.<date_fieldName>;
var <variableName2> = Floor(DateDiff(<variableName>, <variableName1>, 'years'));
var <variableName3> = DateAdd(<variableName1>, <variableName2>, 'years');
var <variableName4> = DateDiff(<variableName>, <variableName3>, 'days');
if (IsEmpty($feature.<date_fieldName>)){ return "<textValue>"; } else if (<variableName2> >= <numberValue>) { return "<textValue1> " + <variableName2> + " <textValue2> " + Floor(<variableName4> , <numberValue1>) + " <textValue3>"; } else if (<variableName2> == <numberValue2>) { return "<textValue4> " + Floor(<variableName4> , <numberValue1>) + " <textValue3>"; } else if (<variableName2> == <numberValue1> && <variableName4> >= <numberValue>) { return "<textValue1> " + Floor(<variableName4> , <numberValue1>) + " <textValue3>"; } else if (<variableName2> == <numberValue1> && <variableName4> >= <numberValue2>) { return "<textValue1> " + Floor(<variableName4> , <numberValue1>) + " <textValue5>"; } else if (<variableName2> == <numberValue1> && <variableName4> < <numberValue2>) { return "<textValue6>"; }
Der folgende Code-Block umfasst das voll funktionsfähigen Arcade-Skript.
var timeNow = Now(); var survey = $feature.DATEINSPECTED; var y = Floor(DateDiff(timeNow, survey, 'years')); var date1a = DateAdd(survey, y, 'years'); var d = DateDiff(timeNow, date1a, 'days'); if (IsEmpty($feature.DATEINSPECTED)){ return "-"; } else if (y >= 2) { return "Last Inspection: " + y + " years and " + Floor(d , 0) + " days ago."; } else if (y == 1) { return "Last Inspection: 1 year and " + Floor(d , 0) + " days ago."; } else if (y == 0 && d >= 2) { return "Last Inspection: " + Floor(d , 0) + " days ago."; } else if (y == 0 && d >= 1) { return "Last Inspection: " + Floor(d , 0) + " day ago."; } else if (y == 0 && d < 1) { return "Last Inspection: today."; }
In der folgenden Abbildung ist das neu mit ArcGIS Arcade hinzugefügte Feld "Last Inspection (days)" im Pop-up zu sehen, das eine Anzahl von Tagen oder Jahren seit der letzten Inspektion eines Hydranten bereitstellt.
Artikel-ID: 000028205
Unterstützung durch ArcGIS-Experten anfordern
Esri Support App herunterladen