Как узнать, пересекается ли линия в JTS? - PullRequest
3 голосов
/ 05 июля 2011

Есть ли способ узнать, пересекает ли себя LineString в JTS?Как в следующем изображении, как я могу найти, если линия пересекает себя?Я создаю эту линию, просто давая координаты ее 4 ребер.

enter image description here

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 24 апреля 2015

Если LineString так пересекается, isSimple() вернет false, поскольку самопересечение не разрешено для простых геометрий.

2 голосов
/ 05 июля 2011

Ни одна линия не может пересекать себя. У вас нет «линии»; у вас есть четыре строки. Вы хотите увидеть, пересекаются ли два из них.

Вы можете явно рассчитать пересечение или посмотреть, как обозначены координаты. Если вы начнете в правом нижнем углу и обозначите точки как A, B, C и D, двигаясь против часовой стрелки, вы увидите, что у вас есть пересечение, если есть линии, соединяющие AC и BD. Если они соединяют AB, BC, CD и DA, пересечение невозможно, за исключением общих точек.

...