0

我正在尝试将我的数据从 sql 移动到 elasticsearch。每次我尝试添加多边形形状时都有一个例外。

我使用 WktReader 读取 WKT 并将其添加到 JeoJson 类中。该类包含类型(多边形)和坐标

坐标构建(在 C# 中):

{ [ [ [ x,y ], [ x,y ], [ x,y ], [ x,y ], [ x,y ] ] ] }

elasticsearch中的几何映射:

"GEOMETRIES" : {
    "type" : "nested",
    "properties" : {
        "AREA" : { "type" : "double" },
        "CENTROID" : {
            "type" : "geo_point",
            "geohash" : true,
            "geohash_preflix" : true
        },
        "KEY" : {
            "type" : "string",
            "index" : "not_analyzed"
        },
        "SHAPE" : {
            "type" : "geo_shape"
        }
    }
}

有两个例外:

1

MapperParsingException[failed to parse [GEOMETRIES.SHAPE]]; nested: IllegalArgumentException[Invalid number of points in LinearRing (found 3 - must be 0 or >= 4)];

2

MapperParsingException[failed to parse [GEOMETRIES.SHAPE]]; nested: InvalidShapeException[provided shape has duplicate consecutive coordinates at: (number, number, NaN)];
4

1 回答 1

0

我解决了。

IllegalArgumentException 是因为多边形的第一个和最后一个坐标是质心,只有第二个和最后一个是真正的第一个和最后一个点。我所做的只是删除第一点和最后一点。

InvalidShapeException 是因为某些多边形基本上是一条线,而 elasticsearch 不喜欢它

最后两个错误都是因为我得到的多边形搞砸了

于 2015-11-26T15:27:12.883 回答