Аналог MakeValid для полилиний

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
ParysNIK
Новоприбывший
Сообщения: 5
Зарегистрирован: 06 апр 2015, 01:36
Репутация: 0

Аналог MakeValid для полилиний

Сообщение ParysNIK »

Здравствуйте. В PostGIS есть функция, именуемая ST_MakeValid, которая должна исправлять неправильную геометрию точек, полилиний, полигонов. Геометрию полигонов и вправду исправляет, а вот с полилиниями что-то не получается. Скажите, пожалуйста, существует ли аналог этой функции для полилиний, или как можно исправить их геометрию (заведомо неправильную) с использованием того же ST_MakeValid?
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Аналог MakeValid для полилиний

Сообщение Максим Дубинин »

приведите пример полилинии с неправильной геометрией
пристегивайтесь, турбулентность прямо по курсу
Донецков
Гуру
Сообщения: 3058
Зарегистрирован: 19 май 2010, 19:44
Репутация: 189

Re: Аналог MakeValid для полилиний

Сообщение Донецков »

Самопересечение (петли)...
ParysNIK
Новоприбывший
Сообщения: 5
Зарегистрирован: 06 апр 2015, 01:36
Репутация: 0

Re: Аналог MakeValid для полилиний

Сообщение ParysNIK »

Именно так. Например, самопересечение. В случае с полигонами ST_MakeValid исправляет геометрию, меняя порядок вершин. В случае с полилиниями исправление не идёт.

[ Сообщение с мобильного устройства ]
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Аналог MakeValid для полилиний

Сообщение Максим Дубинин »

эээ, што?

это по какому стандарту или спецификации самопересекающаяся линия является неправильной геометрией?
пристегивайтесь, турбулентность прямо по курсу
Донецков
Гуру
Сообщения: 3058
Зарегистрирован: 19 май 2010, 19:44
Репутация: 189

Re: Аналог MakeValid для полилиний

Сообщение Донецков »

нет конечно, в машинном виде она не является неправильной геометрией, но по логике, самопересекающиеся реки или горизонтали не есть хорошо, что и хотелось бы исправлять... :)
Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: Аналог MakeValid для полилиний

Сообщение Ariki »

Самопересекающаяся полилиния, конечно же, валидна, но не является простой геометрией в терминах OGC Simple Features. Найти такие геометрии можно с помощью ST_IsSimple, а вот исправить автоматически... с трудом представляю, как это могло бы работать на примере той же реки или горизонтали. Мне кажется, такие места должны исправляться вручную.
ParysNIK
Новоприбывший
Сообщения: 5
Зарегистрирован: 06 апр 2015, 01:36
Репутация: 0

Re: Аналог MakeValid для полилиний

Сообщение ParysNIK »

Ariki писал(а):а вот исправить автоматически... с трудом представляю, как это могло бы работать на примере той же реки или горизонтали. Мне кажется, такие места должны исправляться вручную.
Просто в документации сказано, что для полилиний данная функция тоже подходит, но на деле он у них ничего не исправляет :( Быть может, этот MakeValid для полилиний как-то особенно, в некой связке, использовать?
Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: Аналог MakeValid для полилиний

Сообщение Ariki »

Ещё раз: самопересечение означает некорректную геометрию для полигона, но не для полилинии. По стандарту OGC, полилинии и точки вообще не могут быть невалидными (хотя PostGIS считает таковыми полилинии, имеющие менее двух различных вершин). А значит, ST_MakeValid ничего с полилинией не делает.
Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: Semrush [Bot] и 2 гостя