如何将OSM(GeoJSON)数据加载到ArangoDB?

时间:2017-03-17 12:50:20

标签: json openstreetmap geojson arangodb

如何将OSM数据加载到ArangoDB?

在我尝试使用下一个命令将结果geojson加载到ArangoDB后,从OSM加载了名为luxembourg-latest.osm.pbf的数据,而不是将其转换为JSON arangoimp --file out.json --collection lux1 --server.database geodb并获得了hude list错误:

...
2017-03-17T12:44:28Z [7712] WARNING at position 719386: invalid JSON type (expecting object, probably parse error), offending context: ],
2017-03-17T12:44:28Z [7712] WARNING at position 719387: invalid JSON type (expecting object, probably parse error), offending context: [
2017-03-17T12:44:28Z [7712] WARNING at position 719388: invalid JSON type (expecting object, probably parse error), offending context: 5.867441,
...

我做错了什么?

upd:似乎转换器osm2json转换器应该使用选项osmtogeojson --ndjson运行,该选项生成的项目不是单个Json,而是逐行模式。

1 个答案:

答案 0 :(得分:0)

@ dmitry-bubnenkov已经发现,--ndjson必须为ArangoImp提供正确的输入。

在这里必须知道,ArangoImp需要一个称为JSONL的JSON子集(因为它不能自行解析json)。 因此,导入后,JSON文件的每一行都将成为集合中的一个json文档。为了最大化性能并简化实现,在将json发送到服务器之前未对其进行完全解析。

它尝试将JSON分成服务器允许的最大请求大小的块。它依靠JSONL行结尾来隔离可能的块。

但是,服务器肯定需要有效的JSON。将切碎的部分与可能不完整的JSON文档一起发送到服务器将导致解析服务器上的错误,这是您在输出中看到的错误消息。