如何在弹性搜索中处理自相交的GeoJson多边形

问题描述

我们正在使用Elastic Search中的shape数据类型为geo-json多边形建立索引。多边形是从外部来源提供给我们的。 编制索引时,某些多边形会失败,并显示以下消息。

“无法呈棋盘格形状[[12.775555,61.54487] [12.797356, 61.53186] [12.795639,61.549286] [12.832375,61.54536] [12.775555,61.54487]]。检测到可能的畸形形状。”

我们认为该问题与自相交多边形有关。根据{{​​3}},多边形似乎是有效的。下面是一个自相交多边形的示例:

{
        "type": "polygon","coordinates": [
          [
            [
              12.775554656982422,61.54486837329203
            ],[
              12.797355651855469,61.53186079051699
            ],[
              12.795639038085938,61.54928480379444
            ],[
              12.832374572753906,61.54535911881558
            ],[
              12.775554656982422,61.54486837329203
            ]
          ]
        ]
      }

https://geojsonlint.com似乎表明正确的方法是将自相交的多边形拆分为几个多边形,以便将上述多边形拆分为2个三角形。 但是,以上帖子还发现了This stack-overflow post,因此我们对期望的结果有些困惑。

所以,我们的问题是,在Elasticsearch中索引自相交多边形的建议方法是什么?

谢谢!

解决方法

在Elasticsearch中为自相交多边形建立索引的建议方法是什么?

您无法索引自相交多边形。它们必须符合OGC规范(http://portal.opengeospatial.org/files/?artifact_id=25355)。

此外,您共享的多边形让我想知道生成这些多边形的方式是否存在问题。在将这样的多边形分成两个三角形之前,我会尝试理解为什么会生成这样的形状?