Mit ArcGIS Arcade Text in Zahlen konvertieren
Video
Dieses Lernprogramm ist auch als Video verfügbar.
Versuchen, die Karte anhand des Feldes "Total Value" zu stylen
Sie zeigen zunächst die Grundstücksbewertungsdaten auf einer Karte an und überprüfen das Feld Total Value. Sie werden versuchen, die Karte anhand dieses Feldes zu symbolisieren.
- Öffnen Sie den Layer Portage la Prairie property assessment in Map Viewer.
Eine Karte mit den Grundstücksgrenzen der Stadt wird angezeigt.
- Klicken Sie bei Bedarf auf dem Menüband auf Anmelden, und melden Sie sich mit Ihrem ArcGIS-Organisationskonto an.
Hinweis:
Wenn Sie über kein Organisationskonto verfügen, informieren Sie sich über die Optionen für den Zugriff auf die Software.
- Klicken Sie im Bereich Layer für den Layernamen auf die Schaltfläche Optionen und dann auf Tabelle anzeigen.
Die Attributtabelle des Layers wird unterhalb der Karte angezeigt.
- Führen Sie einen horizontalen Bildlauf durch die Tabelle durch, um das Feld Total Value zu suchen.
Sie visualisieren dieses Feld auf der Karte, um die Werte der Eigenschaften miteinander vergleichen zu können.
- Schließen Sie die Tabelle.
- Klicken Sie auf der Werkzeugleiste Einstellungen auf der rechten Seite des Bildschirms auf die Schaltfläche Styles.
Hinweis:
Wenn die Werkzeugleiste Einstellungen nicht verfügbar ist, klicken Sie im Bereich Layer auf Portage la Prairie property assessment. Die Werkzeugleiste Einstellungen ist nur verfügbar, wenn ein Layer ausgewählt ist.
- Klicken Sie im Bereich Styles auf die Schaltfläche Feld.
- Klicken Sie im Fenster Felder auswählen auf Total Value und dann auf Hinzufügen.
Der Bereich Styles wird aktualisiert und enthält danach Styles, die für das Feld Total Value verfügbar sind. Dies sind nur zwei Styles: Typen (eindeutige Symbole) und Position (Einzelsymbol). Sie hatten gehofft, einen quantitativen Style, z. B. Anzahl und Mengen (Größe), verwenden zu können, aber solche Styles sind nicht verfügbar.
Im oberen Teil des Bereichs Styles, neben Total Value, wird als Feldtyp abc aufgeführt, um anzugeben, dass es sich um ein Zeichenfolgenfeld bzw. Textfeld handelt.
Für die Verwendung des Styles Anzahl und Mengen sind numerische Werte erforderlich. Textwerte können nicht für den Style verwendet werden.
Einen Arcade-Ausdruck erstellen
Sie können die Karte jedoch mit dem Feld Total Value und dem Style Anzahl und Mengen symbolisieren. Sie verwenden einen Arcade-Ausdruck, um die Textwerte in numerische Werte zu konvertieren.
- Klicken Sie im Bereich Styles neben Total Value auf die Schaltfläche Entfernen.
- Klicken Sie auf die Schaltfläche Ausdruck.
Das Fenster "Ausdruck-Generator" wird angezeigt.
- Löschen Sie allen Beispielcode im Fenster "Ausdruck-Generator".
- Klicken Sie am unteren Rand des Fensters auf die Schaltfläche Erweitern.
- Klicken Sie auf der erweiterten Werkzeugleiste auf Funktionen.
Der Bereich Funktionen wird angezeigt, und in ihm werden alle verfügbaren Arcade-Funktionen aufgeführt.
- Geben Sie in der Suchleiste number ein.
Als Ergebnis des Filterns der Liste wird nur eine Funktion angezeigt: Number(value, pattern?) -> Number.
- Number ist der Name der Funktion.
- value und pattern sind ihre beiden Parameter. Das Fragezeichen bedeutet, dass pattern ein optionaler Parameter ist.
- Der Text -> Number am Ende gibt an, dass die Ausgabe dieser Funktion eine Zahl ist.
Sie verwenden diese Funktion, um die im Feld Total Value gespeicherten Textwerte in numerische Werte zu konvertieren.
- Klicken Sie auf Number(value, pattern?) -> Number.
Die Funktion wird im Ausdruck-Generator angezeigt. Der Parameter value_ wird hervorgehoben. Als Nächstes ersetzen Sie ihn durch das Feld Total Value. Lassen Sie daher den Parameter hervorgehoben.
- Klicken Sie auf der Werkzeugleiste auf Profilvariablen.
Profilvariablen sind Datenvariablen aus der Karte, die Sie im Arcade-Ausdruck als Eingaben verwenden können. Sie enthalten alle Felder aus dem Layer.
Im Bereich Profilvariablen verweist $feature auf die Features im Layer. In diesem Fall sind die Features Eigenschaften im Layer Portage la Prairie property assessment.
- Klicken Sie auf die Pfeilschaltfläche neben $feature.
Eine Liste aller Felder aus dem Layer Portage la Prairie property assessment wird angezeigt.
- Führen Sie in der Liste einen Bildlauf bis zum Ende der Liste durch, und klicken Sie auf $feature.Total_Value.
Der Ausdruck wird aktualisiert und lautet jetzt Number ($feature.Total_Value).
Der erste Parameter, value, ist jetzt als $feature.Total_Value definiert. Durch den Ausdruck wird von jedem Feature im Layer auf das Attribut Total Value zugegriffen. Der nächste Parameter, pattern, ist optional. Daher führen Sie den Ausdruck aus, um zu überprüfen, ob er ausgeführt werden kann, ohne ein Muster zu definieren.
- Klicken Sie über dem Ausdruck-Generator auf Ausführen.
Im Fenster Ausgabe wird die Ausgabe Number: NaN angegeben. NaN steht für "Not a Number" (keine Zahl). In diesem Fall wurde der Ausdruck ohne definiertes Muster nicht ordnungsgemäß ausgeführt.
- Ändern Sie den Ausdruck in Number($feature.Total_Value, '#.##').
Das Zeichen # gibt eine optionale Ziffer in der Funktion Number an. Mit dem Muster #.## werden eine beliebige Anzahl von Ziffern vor dem Dezimaltrennzeichen und bis zu zwei Ziffern nach dem Dezimaltrennzeichen konvertiert. Da die Werte im Feld Total Value Währungsbeträge sind, werden möglicherweise einige von ihnen mit bis zu zwei Dezimalstellen angegeben. Dieses Muster stellt sicher, dass Werte mit Dezimalstellen konvertiert werden können.
- Klicken Sie erneut auf Ausführen.
Im Fenster Ausgabe wird immer noch Number: NaN angegeben. Als Nächstes suchen Sie in der Dokumentation der Funktion nach einer Lösung.
Den Ausdruck korrigieren
Sie erinnern sich, dass in der Attributtabelle jeder Zahl im Feld Total Value das Zeichen $ vorangestellt war. Dies ist ein Textzeichen. Beim Ausdruck tritt ein Fehler auf, weil er das Zeichen $ nicht in eine Zahl konvertieren kann. Sie ermitteln in der Dokumentation der Funktion Number, ob es eine Möglichkeit gibt, das Zeichen $ zu entfernen.
- Klicken Sie auf der Werkzeugleiste auf Funktionen.
- Geben Sie in der Suchleiste number ein.
- Klicken Sie auf die Pfeilschaltfläche neben Number(value, pattern?) -> Number.
Die Dokumentation der Funktion wird angezeigt.
- Führen Sie einen Bildlauf nach unten zum Abschnitt Beispiel durch.
Im zweiten Beispiel wird gezeigt, wie beim Konvertieren von Text in Zahlen bestimmte Zeichen ignoriert werden.
Number('abc10def', 'abc##def') // return 10.
Im Beispielausdruck sind abc und def als Text definiert, der ignoriert werden soll. Sie können dieses Muster verwenden, um das Zeichen $ zu ignorieren.
- Setzen Sie im Ausdruck-Generator den Cursor vor #.##, und geben Sie $ ein.
Der endgültige Ausdruck muss Number($feature.Total_Value, '$#.##') lauten.
- Klicken Sie auf Ausführen.
Im Fenster Ausgabe wird Number: 85200 angegeben. Der Ausdruck hat Werte wie $85,200 erfolgreich in Zahlen (in diesem Fall 85200) konvertiert.
Hinweis:
Wenn Ihr Webbrowser auf eine andere Sprache als US-Englisch eingestellt ist, schlägt der Ausdruck möglicherweise fehl, weil als Tausender-Trennzeichen ein Komma festgelegt ist. Falls im Fenster Ausgabe immer noch Number: NaN angegeben wird, löschen Sie den vorhandenen Ausdruck, und ersetzen Sie ihn wie folgt:
var numberOnly = Replace($feature.Total_Value, '$', '') // Remove dollar signs. var digitsOnly = Replace(numberOnly, ',', '') // Remove commas. Number(digitsOnly)
Hinweis:
Wenn Sie auf Ausführen klicken, wird der Ausdruck anhand des ersten Features im Layer getestet.
Da der Ausdruck jetzt vollständig ist, ändern Sie seinen Namen, um seinen Zweck genauer zu beschreiben.
- Klicken Sie oben im Fenster auf Neuer Ausdruck. Löschen Sie den vorhandenen Text, und geben Sie Total Value (numeric) ein.
- Klicken Sie auf Fertig.
Die Karte wird erneut angezeigt. Im Bereich Styles wird der Ausdruck Total Value (numeric) als ausgewähltes Attribut angegeben. Als Standard-Style für die vom Ausdruck zurückgegebenen numerischen Werte wurde Anzahl und Mengen (Farbe) ausgewählt.
Auf der Karte werden die Werte aus dem Feld Total Value mit größeren Kreisen für die größeren bewerteten Grundstückswerte dargestellt.
Hinweis:
Das Feld Total Value und der Layer Portage la Prairie property assessment wurden nicht geändert. Der Ausdruck Total Value (numeric) wird in der Webkarte, jedoch nicht im Layer gespeichert. Wenn Sie jedoch eine Kopie des Layers speichern, bleibt er für die Verwendung in anderen Karten verfügbar.
In diesem Lernprogramm haben Sie gelernt, wie Sie mit der Arcade-Funktion Number Textwerte in numerische Werte für einen Layer in einer Karte konvertieren, damit Sie den Style Anzahl und Mengen anwenden können. Der von Ihnen erstellte Ausdruck – Number($feature.Total_Value, '$#.##') – kann auch zum Formatieren von Pop-ups und Beschriftungen verwendet werden.
Weitere Lernprogramme finden Sie in der Lernprogrammgalerie.