Zusammenfassung
JavaScript Object Notation (JSON) ist ein textbasiertes, einfaches Datenaustauschformat für den Austausch von GIS-Daten zwischen ArcGIS und anderen Systemen. Das Werkzeug "JSON in Features" erstellt eine Feature-Class aus einer JSON-Datei, aber nicht aus einer JSON-URL. Aber die Erweiterung "ArcGIS Data Interoperability" für Desktop verfügt über die Funktion zum Konvertieren einer JSON-URL in eine Feature-Class mit dem Spatial ETL-Werkzeug. Die Ausgabe-Feature-Class enthält die Felder, den Geometrietyp und den Raumbezug, die in der JSON-URL definiert sind.
Das folgende Skript zeigt Teile einer JSON-URL mit der X-Koordinate (Längengrad) und der Y-Koordinate (Breitengrad) jedes Features.
[
{
"json_featuretype":"Metadata"
,"ExtractDate":"2018-10-23"
,"ExtractFrequency":"Daily"
}
,{
"json_featuretype":"CurrentIssues"
,"STREETNUMBER":"320"
,"STREET":"PALM STREET"
,"TOTALUNITS":60
,"BUSINESSOPERATOR":"0707"
,"TOTALOUTSTANDING":1
,"LATITUDE":49.28261413
,"LONGITUDE":-123.10664756
}
,{
"json_featuretype":"CurrentIssues"
,"STREETNUMBER":"404"
,"STREET":"PALM STREET"
,"TOTALUNITS":71
,"BUSINESSOPERATOR":"Central City"
,"TOTALOUTSTANDING":1
,"LATITUDE":49.2816849
,"LONGITUDE":-123.10713559
}
,{
"json_featuretype":"CurrentIssues"
,"STREETNUMBER":"1656"
,"STREET":"COCOA STREET"
,"TOTALUNITS":46
,"BUSINESSOPERATOR":"Housing Society"
,"TOTALOUTSTANDING":2
,"LATITUDE":49.27733406
,"LONGITUDE":-123.07200187
}
Vorgehensweise
In den folgenden Anweisungen wird beschrieben, wie mit der Erweiterung "ArcGIS Data Interoperability" eine JSON-URL in eine Feature-Class konvertiert wird.
Hinweis:
Zum Erstellen des Werkzeugs "Spatial ETL" ist eine Data Interoperability-Lizenz erforderlich.
- Erstellen Sie ein Spatial ETL-Werkzeug im Bereich Katalog, und geben Sie die folgenden FME-Reader- und -Writer-Parameter an.
- Legen Sie im Abschnitt Reader das Format auf JSON (JavaScript Object Notation) fest.
- Geben Sie als Dataset die JSON-URL an.
- Legen Sie im Abschnitt Writer das Format auf Esri Geodatabase (File Geodb ArcObjects) fest, um die JSON-URL in eine Feature-Class in einer File-Geodatabase zu konvertieren.
- Navigieren Sie für Dataset zu einer vorhandenen File-Geodatabase, und suchen Sie die konvertierte Feature-Class.
- Klicken Sie auf OK. Das Fenster Spatial ETL Tool wird angezeigt.
- Fügen Sie im Fenster Spatial ETL Tool den Transformer "VertexCreator" aus dem Fenster Transformer Gallery zur Workspace-Zeichenfläche hinzu. Um dieses Fenster zu öffnen, klicken Sie auf View > Windows > Transformer Gallery.
- Fügen Sie den Transformer VertexCreator per Drag-and-drop hinzu, und verbinden Sie ihn mit dem Reader.
- Ordnen Sie im Dialogfeld VertexCreator Parameters die Parameter X Value und Y Value mit den in der JSON-URL angegebenen Längengrad- und Breitengrad-Attributwerten zu.
- Klicken Sie auf OK.
- Fügen Sie einen CoordinateSystemSetter-Transformer hinzu, um alle Features mit einem Koordinatensystem zu verknüpfen.
- Fügen Sie den Transformer CoordinateSystemSetter per Drag-and-drop hinzu, und verbinden Sie ihn mit der Ausgabe des Transformers davor.
- Wählen Sie im Dialogfeld CoordinateSystemSetter Parameters in Coordinate System das Koordinatensystem aus.
- Klicken Sie auf OK.
- Fügen Sie einen AttributeCreator-Transformer hinzu, um die Attribute aus der JSON-URL in die Ausgabe-Features zu importieren.
- Fügen Sie den Transformer AttributeCreator per Drag-and-drop hinzu, und verbinden Sie ihn mit der Ausgabe des Transformers davor.
- Klicken Sie im Dialogfeld AttributeCreator Parameters auf Import. Das Dialogfeld Import Wizard wird geöffnet.
- Wählen Sie im Parameter Format das Format JSON (JavaScript Object Notation) aus.
- Fügen Sie im Parameter Dataset die JSON-URL ein, und klicken Sie auf Next.
- Geben Sie an, ob die Daten aus den Namen oder den Werten von Attribute in den ausgewählten Feature-Typen importiert werden sollen, und klicken Sie auf Next.
- Wählen Sie in den Abschnitten New Attribute und Attribute Value die zu importierenden Attribute aus, und klicken Sie auf Import.
- Klicken Sie auf OK, um das Dialogfeld AttributeCreator Parameters zu schließen.
- Verbinden Sie manuell die Ausgabe und die Attribute des Transformers AttributeCreator mit dem Writer.
- Doppelklicken Sie auf den Writer, um die Eigenschaften des Ausgabe-Feature-Typs zu bearbeiten.
- Wählen Sie auf der Registerkarte General den Geometry-Typ aus. Wählen Sie zum Beispiel geodb_point aus, um die JSON-URL in eine Point-Feature-Class zu konvertieren.
- Klicken Sie auf OK.
- Klicken Sie auf Save und dann auf Run . Die Ausgabe-Feature-Class befindet sich in der File-Geodatabase, die in Schritt 1(d) angegeben wurde. Um die Daten anzuzeigen, fügen Sie die Feature-Class in ArcMap hinzu.
Die folgende Abbildung zeigt eine Point-Feature-Class nach ihrer Konvertierung aus einer JSON-URL in ArcMap.