HOW TO

Erstellen eines Pop-up mit in absteigender Reihenfolge sortierten Feldnamen und -werten aus mehreren Feldern in ArcGIS Online Map Viewer und Portal for ArcGIS Map Viewer

Last Published: February 9, 2023

Zusammenfassung

In ArcGIS Online Map Viewer und Portal for ArcGIS Map Viewer können Sie mit Arcade-Ausdrücken, die mehrere Anweisungen umfassen, Pop-ups so konfigurieren, dass Feldnamen und -werte aus mehreren Feldern eines Features sortiert angezeigt werden. Auf diese Weise lässt sich in einem Polygon leichter bestimmen, welches Produkt, Problem o. ä. die höchste oder niedrigste Anzahl an Ereignissen aufweist. In diesem Artikel finden Sie Anweisungen, wie Sie in Map Viewer mit Arcade-Ausdrücken ein Pop-up erstellen, das in absteigender Reihenfolge sortierte Feldnamen und -werte aus mehreren Feldern enthält, sowie ein Beispiel dafür.

Die folgende Abbildung zeigt ein Map Viewer-Pop-up, in dem alle Felder und Datensätze einzeln aufgeführt sind.

Das Pop-up des Layers in Portal for ArcGIS Map Viewer

Vorgehensweise

  1. Öffnen Sie die Karte in Map Viewer. Klicken Sie auf der (dunklen) Werkzeugleiste Inhalt auf Layer, und wählen Sie den Layer mit dem zu bearbeitenden Pop-up aus.
  2. Klicken Sie auf der (hellen) Werkzeugleiste Einstellungen auf Pop-ups > Optionen > Attributausdrücke.
  3. Klicken Sie auf + Ausdruck hinzufügen, um das Fenster mit dem Editor für Arcade-Ausdrücke zu öffnen.
  4. Geben Sie im Editor-Fenster einen Namen für den neuen Ausdruck an.
  5. Fügen Sie im Dialogfeld Ausdruck den folgenden Arcade-Ausdruck ein.
    1. Definieren Sie die Komparatorfunktion so, dass "IsEmpty()" als kleinster Wert zurückgegeben wird.
function Comp (a, b) {
  When(
    IsEmpty(a[1]), -1,
    IsEmpty(b[1]), 1,
    Iif(a[1]>b[1], 1, -1)
  );
};
  1. Definieren Sie die Variable für die Array-Liste. In diesem Beispiel bestehen die Arrays aus den Feldnamen und dem entsprechenden Feldwert der einzelnen Felder.
var <variableName1> = [
  ["<fieldName1>", $feature.<fieldName1>],
  ["<fieldName2>", $feature.<fieldName2>],
  ["<fieldName3>", $feature.<fieldName3>],
  ["<fieldName4>", $feature.<fieldName4>],
  ["<fieldName5>", $feature.<fieldName5>],
  ["<fieldName6>", $feature.<fieldName6>],
  ["<fieldName7>", $feature.<fieldName7>],
  ["<fieldName8>", $feature.<fieldName8>],
  ["<fieldName9>", $feature.<fieldName9>],
];
  1. Geben Sie die folgende Anweisung an, um den Sortiertyp festzulegen. Der folgende Code-Block ist ein Beispiel für eine absteigende Sortierung. Für eine aufsteigende Sortierung lassen Sie die Funktion "Reverse()" aus.
<variableName1> = Reverse(Sort(<variableName1>, Comp));
  1. Geben Sie die folgende Anweisung an, um die sortierten Textwerte zurückzugeben. In diesem Beispiel wurden zusätzliche Textformatierungen in den Code-Block eingefügt. Im Endergebnis wurden alle eckigen Klammern entfernt und die Kommas in Doppelpunkte geändert.
var <variableName2> = "";
for (var i in <variableName1>) {
  if (<variableName2> == "") {
    <variableName2> = Replace(Replace(Replace(<variableName1>[i], '["', ""), '",', ": "), ']', "");
  } else {
    <variableName2> += TextFormatting.NewLine + Replace(Replace(Replace(<variableName1>[i], '["', ""), '",', ": "), ']', "");
  }
}

return <variableName2>;

Der folgende Codeblock ist ein Beispiel für den voll funktionsfähigen Ausdruck.

function Comp (a, b) {
  When(
    IsEmpty(a[1]), -1,
    IsEmpty(b[1]), 1,
    Iif(a[1]>b[1], 1, -1)
  );
};

var arr = [
  ["BREASTCANCER", $feature.BREASTCANCER],
  ["CARDIOVASCULAR", $feature.CARDIOVASCULAR],
  ["CERVICALCANCER", $feature.CERVICALCANCER],
  ["COLONCANCER", $feature.COLONCANCER],
  ["DIABETES", $feature.DIABETES],
  ["INFLUENZA", $feature.INFLUENZA],
  ["LUNGCANCER", $feature.LUNGCANCER],
  ["PROSTATECANCER", $feature.PROSTATECANCER],
  ["SKINCANCER", $feature.SKINCANCER],
];

arr = Reverse(Sort(arr, Comp));

var result = "";
for (var i in arr) {
  if (result == "") {
    result = Replace(Replace(Replace(arr[i], '["', ""), '",', ": "), ']', "");
  } else {
    result += TextFormatting.NewLine + Replace(Replace(Replace(arr[i], '["', ""), '",', ": "), ']', "");
  }
}

return result;
  1. Klicken Sie auf Ausführen, um das Ergebnis des Ausdrucks in einer Vorschau anzuzeigen. Wenn das gewünschte Ergebnis angezeigt wird, klicken Sie auf Fertig.
Angeben des Arcade-Ausdrucks im Editor-Fenster in Portal for ArcGIS Map Viewer
  1. Klicken Sie auf die Schaltfläche Zurück über dem Arcade-Ausdruck im Bereich Pop-up-Ausdrücke.
Der Portal for ArcGIS Map Viewer-Bereich "Pop-up-Ausdrücke" mit dem Symbol "Zurück" über dem neu erstellten Ausdruck
  1. Klicken Sie auf Felderliste, um die Liste der in den Pop-ups angezeigten Felder zu erweitern, und klicken Sie auf Felder auswählen.
  2. Aktivieren Sie das Ausdrucksfeld im Abschnitt Ausdrücke, und klicken Sie auf Fertig.
  3. Sie können auch neben dem Ausdrucksfeld auf Neu anordnen Das Symbol "Neu anordnen" klicken und das Feld an eine neue Stelle im Abschnitt Felder auswählen ziehen.

Die folgende Abbildung zeigt das neu hinzugefügte Feld "Diseases-Sorted" im Pop-up, das nach Verwendung des Arcade-Ausdrucks über mehrere, in absteigender Reihenfolge sortierte Feldnamen und -werte verfügt.

Das Pop-up-Fenster, in dem das neu hinzugefügte Feld "Diseases-Sorted" in Portal for ArcGIS Map Viewer angezeigt wird

Artikel-ID: 000029130

Benachrichtigungen erhalten und Lösungen für neue oder häufige Probleme finden

Unser neuer KI-Chatbot stellt zusammengefasste Antworten und Videolösungen für Sie bereit.

Esri Support App herunterladen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Esri Support App herunterladen

Zu Download-Optionen wechseln