描述
将要素转换为 JSON 或 GeoJSON 格式。要素的字段、几何和空间参考将转换为相应的 JSON 表示,并写入到扩展名为 .json 或 .geojson 的文件中。
使用方法
如果希望输出文件中的 JSON 表示的可读性更高,则可启用格式设置。通过空格、制表符和回车设置输出文件的格式,以提高其可读性。经过格式设置的 JSON 可能会有助于应用程序的开发和测试。但是,建议您不要将其用于生产应用程序,因为任何空格均不必要,且会为 JSON 解析程序所忽略。此外,经过格式设置的 JSON 比其相应的 JSON 更具有意义,而且文件大小也比其相应的 JSON 表示大得多。这会影响应用程序的性能。
转换不支持要素的连接、关联和附件。
要转换要素类或图层中的要素子集,请使用按属性选择图层或按位置选择图层工具,并且在使用要素转 JSON 之前,请选择要转换的要素子集。
使用输出至 GeoJSON 参数(Python 中的 geoJSON='GEOJSON')来创建符合 GeoJSON 规范的 .geojson 文件输出。Esri JSON 输出是默认设置。
一旦输出为 GeoJSON 文件,您可以选择将输入要素投影到 WGS 1984 坐标系,这是 GeoJSON 规范的标准设置。如有必要,可应用默认地理变换。如果未使用此选项,则输出 GeoJSON 文件将包含,可在某些应用程序中用于定义坐标系或坐标参考系的 crs 标签。GeoJSON 规范并未完全支持此标签。
该工具的输出仅包含输入中的可见属性字段。要包含所有字段,您必须使其全部可见。另外,你可以使用使用字段别名参数,使输出使用字段别名而不是字段名称。
语法
arcpy.conversion.FeaturesToJSON(in_features, out_json_file, {format_json}, {include_z_values}, {include_m_values}, {geoJSON}, {outputToWGS84}, {use_field_alias})
参数 | 说明 | 数据类型 |
in_features | 要转换为 JSON 的要素。 | Feature Layer |
out_json_file | 输出 JSON 或 GeoJSON 文件。 | File |
format_json (可选) | 用于指定是否设置 JSON 的格式,以提高与 ArcGIS REST API 规范的 PJSON(美观的 JSON)格式相似的可读性。
| Boolean |
include_z_values (可选) | 用于指定是否包括要转为 JSON 的要素的 Z 值。
| Boolean |
include_m_values (可选) | 用于指定是否包括要转为 JSON 的要素的 M 值。
| Boolean |
geoJSON (可选) | 用于指定是否将输出创建为符合 GeoJSON 规范的 GeoJSON。
| Boolean |
outputToWGS84 (可选) | 用于指定是否将输入要素投影到采用默认地理变换的地理坐标系 WGS_1984。该参数仅适用于输出为 GeoJSON 的情况。
| Boolean |
use_field_alias (可选) | 指定输出文件是否将使用要素属性的字段别名。
| Boolean |
代码示例
以下 Python 窗口脚本演示了如何使用 FeaturesToJSON 函数创建 JSON 和 PJSON 文件。
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")
以下 Python 窗口脚本演示了如何通过 Z 值和 M 值使用 FeaturesToJSON 函数。
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")
使用 SelectLayerByAttribute 和 SelectLayerByLocation 将要素子集转换为 JSON。
# 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")
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是