【问题标题】:ElasticSearch "unable to tessellate shape" error on indexing for valid geo shapeElasticSearch“无法镶嵌形状”索引有效地理形状时出错
【发布时间】:2021-03-24 11:16:01
【问题描述】:

我与使用 ElasticSearch 7.11.1(依赖 Lucene 8.7.0)的Unable to Tessellate shape error on indexing for valid geo shape 有同样的问题。

我的几何图形,WKT 格式是

多边形((-180 62.288856810085,-178.761 63.4792,-180 63.7639,-180 63.763900213475,-180 62.288856810085))

并对其进行索引,返回的错误是

无法细分形状 [[62.288856810085, -180.0] [63.7639, -180.0] [63.763900213475, -180.0] [62.288856810085, -180.0] ]。检测到可能的畸形形状。

我认为错误是由纬度值 63.7639 和 63.763900213475 具有相同经度值 -180.0 的点引起的。

无论如何...有什么解决方法吗?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    我遇到了同样的问题,我发现这与此处描述的所谓“右手法则”有关:https://www.rfc-editor.org/rfc/rfc7946#section-3.1.6

    线性环在其边界区域上必须遵循右手定则,即外环为逆时针方向,孔为顺时针方向。

    如果您不遵循此规则,Elastic Search 将无法正确解释几何图形并“打乱”您的坐标,从而生成一个自相交的多边形。

    我使用geojson-rewind 解决了这个问题,以便在 ES 中建立索引之前正确排序几何点。

    【讨论】:

    • 使用PostGIS,看来我的几何图形即使可以插入PostgreSQL数据库也无法进行缨子。 ElasticSearch 在插入几何图形时会对其进行流苏。 PostgreSQL 不这样做。但是,也许我的几何图形无效。
    猜你喜欢
    • 1970-01-01
    • 2017-04-05
    • 2019-12-10
    • 1970-01-01
    • 2018-02-17
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    相关资源
    最近更新 更多