Аналог MakeValid для полилиний
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 06 апр 2015, 01:36
- Репутация: 0
Аналог MakeValid для полилиний
Здравствуйте. В PostGIS есть функция, именуемая ST_MakeValid, которая должна исправлять неправильную геометрию точек, полилиний, полигонов. Геометрию полигонов и вправду исправляет, а вот с полилиниями что-то не получается. Скажите, пожалуйста, существует ли аналог этой функции для полилиний, или как можно исправить их геометрию (заведомо неправильную) с использованием того же ST_MakeValid?
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Аналог MakeValid для полилиний
приведите пример полилинии с неправильной геометрией
пристегивайтесь, турбулентность прямо по курсу
-
- Гуру
- Сообщения: 3058
- Зарегистрирован: 19 май 2010, 19:44
- Репутация: 189
Re: Аналог MakeValid для полилиний
Самопересечение (петли)...
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 06 апр 2015, 01:36
- Репутация: 0
Re: Аналог MakeValid для полилиний
Именно так. Например, самопересечение. В случае с полигонами ST_MakeValid исправляет геометрию, меняя порядок вершин. В случае с полилиниями исправление не идёт.
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Аналог MakeValid для полилиний
эээ, што?
это по какому стандарту или спецификации самопересекающаяся линия является неправильной геометрией?
это по какому стандарту или спецификации самопересекающаяся линия является неправильной геометрией?
пристегивайтесь, турбулентность прямо по курсу
-
- Гуру
- Сообщения: 3058
- Зарегистрирован: 19 май 2010, 19:44
- Репутация: 189
Re: Аналог MakeValid для полилиний
нет конечно, в машинном виде она не является неправильной геометрией, но по логике, самопересекающиеся реки или горизонтали не есть хорошо, что и хотелось бы исправлять... 

-
- Гуру
- Сообщения: 731
- Зарегистрирован: 12 янв 2011, 22:40
- Репутация: 304
- Ваше звание: ∀
Re: Аналог MakeValid для полилиний
Самопересекающаяся полилиния, конечно же, валидна, но не является простой геометрией в терминах OGC Simple Features. Найти такие геометрии можно с помощью ST_IsSimple, а вот исправить автоматически... с трудом представляю, как это могло бы работать на примере той же реки или горизонтали. Мне кажется, такие места должны исправляться вручную.
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 06 апр 2015, 01:36
- Репутация: 0
Re: Аналог MakeValid для полилиний
Просто в документации сказано, что для полилиний данная функция тоже подходит, но на деле он у них ничего не исправляетAriki писал(а):а вот исправить автоматически... с трудом представляю, как это могло бы работать на примере той же реки или горизонтали. Мне кажется, такие места должны исправляться вручную.

-
- Гуру
- Сообщения: 731
- Зарегистрирован: 12 янв 2011, 22:40
- Репутация: 304
- Ваше звание: ∀
Re: Аналог MakeValid для полилиний
Ещё раз: самопересечение означает некорректную геометрию для полигона, но не для полилинии. По стандарту OGC, полилинии и точки вообще не могут быть невалидными (хотя PostGIS считает таковыми полилинии, имеющие менее двух различных вершин). А значит, ST_MakeValid ничего с полилинией не делает.
Кто сейчас на конференции
Сейчас этот форум просматривают: Ahrefs [Bot] и 2 гостя