答案
否,无法在 ArcGIS Pro 中使用 JSON 转要素工具导入通用 JSON 文件。 通用 JSON 文件不遵循数据组织的任何标准。 但是,GeoJSON 是一种用于对多种地理数据结构进行编码的指定格式。 ArcGIS 产品与 EsriJSON 文件和 GeoJSON 文件兼容。 将通用 JSON 文件与 JSON 转要素工具配合使用将会产生错误。 有关详细信息,请参阅 ArcGIS Pro:001558:解析 .json 文件 <值> 时出错。 作为一种解决方法,可以在 ArcGIS Pro 中创建一个空间 ETL 工具,以导入通用 JSON 文件作为要素类。
注: 需要使用 Data Interoperability 许可来创建空间 ETL 工具。
- 在目录窗格中创建空间 ETL 工具,并指定以下 FME 阅读器和编写器参数:
- 在阅读器部分中,将格式设置为文本文件。
- 对于数据集,指定 JSON 文件。 在选择源文本文件对话框中,选择所有文件以查看 JSON 文件。
- 在编写器部分中,将格式设置为 Esri 地理数据库 (File Geodb ArcObjects) 以将 JSON 文件转换为文件地理数据库要素类。
- 对于数据集,浏览至现有文件地理数据库以查找已转换的要素类。
- 单击确定。 随即显示空间 ETL 工具窗口。
- 要将 JSON 文件内容提取到要素属性,请从转换器库窗口中添加 JSONFragmenter 转换器,然后将其连接到阅读器。
注: 要打开转换器库窗口,请单击视图 > 窗口 > 转换器库。
- 在 JSONFragmenter 参数对话框中,将 JSON 属性设置为 text_line_data。
- 对于 JSON 查询,键入 json[*]。
- 对于将查询结果展平为属性,从下拉列表中选择是,并确保递归展平对象/数组设置为是。
- 右键单击 JSONFragmenter 转换器 > 运行 > 运行到此。
- 添加 AttributeExposer 转换器,然后将其连接到之前的转换器输出。
- 在 AttributeExposer 参数对话框中,单击导入 > 选择自要素缓存…。
- 从导入向导对话框中,选择所需属性。
- 单击导入以关闭导入向导对话框。
- 单击确定以关闭 AttributeExposer 参数对话框。
- 添加 VertexCreator 转换器以将坐标附加到点,然后将其连接到之前的转换器输出。
- 在 VertexCreator 参数对话框中,将 X 值和 Y 值参数分别映射到 JSON 文件中的经度和纬度属性值。
- 单击确定。
- 添加 CoordinateSystemSetter 转换器以使用坐标系标记所有要素。 将其连接到之前的转换器输出。
- 在 CoordinateSystemSetter 参数对话框中,从坐标系下拉列表中选择一个值。
- 单击确定。
- 添加 AttributeCreator 转换器以将属性从 JSON 文件导入到输出要素。
- 在 AttributeCreator 参数对话框中,在新建属性中键入首选字段名称。
- 对于属性值,单击下拉列表,然后选择属性值以选择相关属性。
- 单击确定以关闭 AttributeCreator 参数对话框。
- 手动将 AttributeCreator 转换器的输出和属性连接到编写器。
- 双击编写器以编辑输出要素类型属性。
- 在常规选项卡中,选择几何类型。 例如,选择 geodb_point 以将 JSON 文件转换为点要素类。
- 单击确定。
- 单击保存 图标,然后单击运行 图标。 输出要素类位于步骤 1d 中指定的文件地理数据库中。
- 要查看数据,需要在 ArcGIS Pro 中添加要素类。
下图显示了 ArcGIS Pro 中转换自 JSON 文件的点要素类。