Elasticsearch 7.4开始支持直角坐标系的Shape检索,大大方便了我们中国各地方城市坐标系的业务应用。但是Elasticsearch 7.4只支持GeoJSON、WKT两种格式的数据入库,如何将原始数据以易智瑞的产品编辑和保存的数据转换为Elasticsearch7.4能入库的数据。下面介绍一种利用现有工具经过简单加工,不需要编程即可完成的方法。

一、利用ARCMap将原始导出GeoJSON格式

1、在ARCMap或ARCCatalog中打开ArcToolbox

es如何保存JSON es导出json_es如何保存JSON


2、选择“转换工具(Conversion tools)->JSON->要素转JSON(features to JSON)”

es如何保存JSON es导出json_ArcGIS_02


3、或者是直接在搜索框中,输入JSON,找到“要素转JSON工具”。

es如何保存JSON es导出json_es如何保存JSON_03


4、在“要素转JSON”对话框中,在“输入要素”栏中输入要转换的要素,在输出JSON栏中,确定保存的路径。注意不要勾选“格式化JSON”,勾选“GeoJSON”选项。如果勾选了"格式化JSON",则会按照PJSON规范设置要素的格式,因为Elasticsearch7.4中要求每个文档(doc)内容必须在一行,所以不能以PJSON规范输出。如果未勾选“GeoJSON”,则会以EsriJSON的格式输出,不符合要求。

es如何保存JSON es导出json_es如何保存JSON_04


5、在结果提示窗中等待转换完成。

es如何保存JSON es导出json_Elasticsearch_05

二、编辑GeoJSON文件

6、用NotePad++打开转换后的结果文件。转换后的结果文件以一行的形式输出,并且文件开头记录的要素的坐标参照信息是不需要的,同时需要将每一条记录单独一行保存。

es如何保存JSON es导出json_地理数据转换JSON_06


7、删除文件开头的{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"EPSG:4548"}},"features":[,删除文件结尾的“]}

8、“ctrl+H”打开替换窗口,在查找目标中输入“,{"type":"Feature","id":”,在替换为中输入:\n{"layername":"设备","type":"Feature","id":。同时把查找模式更改为“扩展(x)(\n,\r,\t,\o,\x,…)”。最后点击“全部替换”。如果有多个文件可以点击“替换所有打开文件”。注意每个双引号不要出错了,本人就因为少了各双引号而走了不少弯路。同时在文件末尾加一空行

es如何保存JSON es导出json_地理数据转换JSON_07


9、用“{"layername":"设备","type":"Feature","id":”替换第一条记录,最后的形式如下图所示。

es如何保存JSON es导出json_es如何保存JSON_08


10、还是通过查找替换的方法,在每条记录的前面插入Elasticsearch的操作标识{"index":{}}。标识每条记录插入的时候自动建立唯一ID值。

在这里插入图片描述

三、 导入结果数据

11、按照本人写的“批量导入GIS数据到Elasticsearch中”一文介绍的几种方法,选择一种导入到Elasticsearch中。