У меня есть куча полигонов, которые имеют самопересечение, что вызывает некоторые ошибки при дальнейшей их постобработке (в частности, я не могу вычислить площадь пересечения этих полигонов с другими полигонами). Вот пример ломаного многоугольника:
{
"type": "MultiPolygon",
"coordinates": [
[
[
[
6.881057785381658,
46.82373306675715
],
[
6.857171686909481,
46.81861230543794
],
[
6.857354659059071,
46.81856788926046
],
[
6.856993473052509,
46.82693029065604
],
[
6.8612894138116785,
46.83422796373707
],
[
6.86720955648855,
46.835636765630476
],
[
6.871281147359957,
46.83078486366309
],
[
6.871573291317274,
46.8306215963777
],
[
6.877608228639841,
46.82771553607934
],
[
6.877758462659651,
46.82772313420989
],
[
6.877852632482749,
46.827735617670285
],
[
6.880928107931434,
46.82630213148064
],
[
6.8810399979122305,
46.82622029042867
],
[
6.881117606743071,
46.826115612819855
],
[
6.881057785381658,
46.82373306675715
]
]
]
]
}
Вот как это выглядит на карте — как видите, есть пересечение двух ребер полигона. RGeo выдает ошибку, указывая координату пересечения (наверное): => "Geos::GEOSException: TopologyException: Input geom 0 is invalid: Self-intersection at or near point 6.8573510795579145 46.818650764080992 at 6.8573510795579145 46.818650764080992"
. Так у меня по крайней мере есть.
Мой вопрос: есть ли способ исправить это пересечение автоматически? Я читал, что возможное решение - вставить 2 одинаковые точки с координатами самопересечения. Но проблема в том, что полигон имеет определенный порядок, и я не знаю, КУДА вставить эти точки.
Кроме того, возможно, есть какие-то существующие инструменты, помогающие это исправить...