NetTopology «обнаружено пересечение без узлов». Исключение при определении разницы между двумя конкретными геометриями.C#

Место общения программистов C#
Ответить
Anonymous
 NetTopology «обнаружено пересечение без узлов». Исключение при определении разницы между двумя конкретными геометриями.

Сообщение Anonymous »

Используя NetTopology в C#, я получаю исключение «найдено неузловое пересечение» при определении разницы между двумя конкретными геометриями.
Эти геометрии являются результатом использования нескольких подпрограмм, таких как CascadedPolygonUnion.Union, Intersection и Difference.
В какой-то момент у нас есть MultiPolygon, из которого мы хотим вырезать другую геометрию ():
Изображение

Мы используем этот код, чтобы попытаться вырезать от «красного» многоугольника:

Код: Выделить всё

Geometry difference = multiPolygon.Difference(geometryToRemove);
Но затем мы получаем исключение NetTopologySuite.Geometries.TopologyException с сообщением:

Код: Выделить всё

found non-noded intersection between LINESTRING (240173.28029999882 493556.2806000002, 240173.28177031482 493556.28131837514) and LINESTRING (240173.28176154062 493556.2813140882, 240173.28176153247 493556.2813140842) [ (240173.28176153894, 493556.2813140874) ]
Я также задал этот вопрос на дискуссионном форуме NetTopologySuite, потому что дата выпуска близка, и я надеялся, что кто-нибудь может дать дополнительную информацию (идеи обходного пути), поскольку это похоже на ошибку в библиотеке, поскольку сами полигоны кажутся действительными.
Данные о полигонах можно найти здесь — мы используем данные «RDNew» для определения разницы действие, но я также добавил версии этих полигонов в формате WGS84, чтобы иметь возможность просматривать их в таких инструментах, как geojson.io.

Подробнее здесь: https://stackoverflow.com/questions/680 ... the-differ
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»