Features in JSON (Conversion)

Zusammenfassung

Konvertiert Features in das JSON- oder GeoJSON-Format. Die Felder, die Geometrie und der Raumbezug von Features werden in die entsprechende JSON-Repräsentation konvertiert und in eine Datei mit der Erweiterung .json oder .geojson geschrieben.

Verwendung

  • Wenn die JSON-Repräsentation in der Ausgabedatei ein lesbares Format aufweisen soll, können Sie die Formatierung aktivieren. Die Ausgabedatei wird mit Leerstellen, Tabulatoren und Zeilenumbrüchen formatiert, um die Lesbarkeit zu verbessern. Eine formatierte JSON kann beim Entwickeln und Testen von Anwendungen nützlich sein. Es wird für Produktionsanwendungen jedoch nicht empfohlen, da alle Leerstellen unnötig sind und von JSON-Parsern ignoriert werden. Zudem kann formatiertes JSON erheblich umfangreicher sein als das JSON-Äquivalent und die Dateigröße übersteigt die der entsprechenden JSON-Repräsentation. Dies kann Auswirkungen auf die Anwendungs-Performance haben.

  • Die Konvertierung unterstützt keine Verbindungen, Beziehungen und Anlagen der Features.

  • Um eine Untermenge von Features in eine Feature-Class oder einen Layer zu konvertieren, verwenden Sie die Werkzeuge Layer nach Attributen auswählen oder Layer lagebezogen auswählen, und wählen Sie die Untermenge der zu konvertierenden Features, bevor Sie Features in JSON verwenden.

  • Verwenden Sie den Parameter Ausgabe in GeoJSON (geoJSON='GEOJSON' in Python), um eine .geojson-Dateiausgabe zu erstellen, die der GeoJSON-Spezifikation entspricht. Die Standardausgabe ist Esri JSON.

  • Wenn die Ausgabe eine GeoJSON-Datei ist, können Sie Eingabe-Features auf das Koordinatensystem WGS 1984 projizieren. Dies ist der Standard für die GeoJSON-Spezifikation. Bei Bedarf wird eine geographische Standardtransformation angewendet. Wenn diese Option nicht verwendet wird, enthält die GeoJSON-Datei ein crs-Tag, mit dem in einigen Anwendungen das Koordinatensystem oder das Koordinatenbezugssystem definiert werden kann. Dieses Tag wird in der GeoJSON-Spezifikation nicht vollständig unterstützt.

  • Die Werkzeugausgabe enthält ausschließlich sichtbare Attributfelder aus der Eingabe. Wenn alle Felder enthalten sein sollen, müssen Sie alle Felder sichtbar machen. Darüber hinaus können Sie mit dem Parameter Feld-Aliasnamen festlegen, dass in der Ausgabe Feld-Aliasnamen anstelle der Feldnamen verwendet werden.

Syntax

arcpy.conversion.FeaturesToJSON(in_features, out_json_file, {format_json}, {include_z_values}, {include_m_values}, {geoJSON}, {outputToWGS84}, {use_field_alias})
ParameterErklärungDatentyp
in_features

Die Features, die in JSON konvertiert werden sollen.

Feature Layer
out_json_file

Die JSON- oder GeoJSON-Ausgabedatei.

File
format_json
(optional)

Gibt an, ob JSON in ähnlicher Weise wie das PJSON-Format (Pretty JSON) der ArcGIS REST API-Spezifikation formatiert wird, um die Lesbarkeit zu verbessern.

  • NOT_FORMATTED Die Features werden nicht formatiert. Dies ist die Standardeinstellung.
  • FORMATTEDDie Features werden formatiert, um die Lesbarkeit zu verbessern.
Boolean
include_z_values
(optional)

Gibt an, ob Z-Werte der Features in JSON einbezogen werden.

  • NO_Z_VALUES Die Z-Werte werden nicht in Geometrien einbezogen, ebenso wie die Eigenschaft hasZ von JSON. Dies ist die Standardeinstellung.
  • Z_VALUESDie Z-Werte werden nicht in Geometrien einbezogen, und die Eigenschaft hasZ von JSON wird auf "true" festgelegt.
Boolean
include_m_values
(optional)

Gibt an, ob M-Werte der Features in JSON einbezogen werden.

  • NO_M_VALUES Die M-Werte werden nicht in Geometrien einbezogen, ebenso wie die Eigenschaft hasM von JSON. Dies ist die Standardeinstellung.
  • M_VALUESDie M-Werte werden nicht in Geometrien einbezogen, und die Eigenschaft hasM von JSON wird auf "true" festgelegt.
Boolean
geoJSON
(optional)

Gibt an, ob die Ausgabe als GeoJSON erstellt wird und der GeoJSON-Spezifikation entspricht.

  • GEOJSON Die Ausgabe wird im GeoJSON-Format (.geojson) erstellt.
  • NO_GEOJSONDie Ausgabe wird als Esri JSON (.json) erstellt. Dies ist die Standardeinstellung.
Boolean
outputToWGS84
(optional)

Gibt an, ob die Eingabe-Features mit einer geographischen Standardtransformation auf das geographische Koordinatensystem WGS_1984 projiziert werden. Dieser Parameter gilt nur, wenn die Ausgabe "GeoJSON" ist.

  • WGS84 Features werden auf WGS_1984 projiziert.
  • KEEP_INPUT_SRFeatures werden nicht auf WGS_1984 projiziert. Die GeoJSON enthält ein CRS-Tag, mit dem das Koordinatensystem definiert wird. Dies ist die Standardeinstellung.
Boolean
use_field_alias
(optional)

Gibt an, ob in der Ausgabedatei Feld-Aliasnamen für Feature-Attribute verwendet werden.

  • USE_FIELD_NAME Für Ausgabe-Feature-Attribute werden Feldnamen verwendet. Dies ist die Standardeinstellung.
  • USE_FIELD_ALIASFür Ausgabe-Feature-Attribute werden Feld-Aliasnamen verwendet.
Boolean

Codebeispiel

FeaturesToJSON – Beispiel 1 (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie Sie die Funktion FeaturesToJSON verwenden, um JSON- und PJSON-Dateien zu erstellen.

import arcpy
import os
arcpy.env.workspace = "c:/data"
arcpy.FeaturesToJSON_conversion(os.path.join("outgdb.gdb", "myfeatures"), 
                                "myjsonfeatures.json")
arcpy.FeaturesToJSON_conversion(os.path.join("outgdb.gdb", "myfeatures"), 
                                "mypjsonfeatures.json", "FORMATTED")
FeaturesToJSON – Beispiel 2 (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie Sie die Funktion FeaturesToJSON mit Z- und M-Werten verwenden.

import arcpy
import os
arcpy.env.workspace = "c:/data"
arcpy.FeaturesToJSON_conversion(os.path.join("outgdb.gdb", "myfeatures"), 
                                "myjsonfeatures.json", "NOT_FORMATTED",	
                                "Z_VALUES", "M_VALUES")
FeaturesToJSON – Beispiel 3 (eigenständiges Skript)

Konvertieren Sie eine Teilmenge von Features in JSON, indem Sie SelectLayerByAttribute und SelectLayerByLocation verwenden.

# Import system modules
import arcpy
# Set the workspace
arcpy.env.workspace = "c:/data/mexico.gdb"
# Make a layer from the feature class
arcpy.MakeFeatureLayer_management("cities", "cities_lyr") 
 
# Select all cities that overlap the chihuahua polygon
arcpy.SelectLayerByLocation_management("cities_lyr", "intersect", "chihuahua", 
                                       0, "new_selection")
# Within selected features, further select only those cities that have a 
# population > 10,000   
arcpy.SelectLayerByAttribute_management("cities_lyr", "SUBSET_SELECTION", 
                                        '"population" > 10000')
 
# Convert the selected features to JSON
arcpy.FeaturesToJSON_conversion("cities_lyr", r"c:\data\myjsonfeatures.json")

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen