Не работает ST_Buffer + ST_Crosses

Ответить
SmArtem
Новоприбывший
Сообщения: 11
Зарегистрирован: 01 май 2017, 12:49
Репутация: 0

Не работает ST_Buffer + ST_Crosses

Сообщение SmArtem » 01 май 2017, 13:47

Здравствуйте, расскажите, пожалуйста, почему запрос не работает корректно. Без ST_Buffer возвращает хоть какие-то пересечения.

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

SELECT world_thickets.*
FROM world_roads, world_thickets
WHERE ST_Crosses(ST_Buffer(world_roads.geom, 10, 'endcap=round join=round'), world_thickets.geom);
В чем может причина? Есть альтернативный вариант найти геометрию вдоль мультилинии.

trir
Гуру
Сообщения: 5271
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Не работает ST_Buffer + ST_Crosses

Сообщение trir » 01 май 2017, 14:33

глазками посмотри эти пересечения

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Не работает ST_Buffer + ST_Crosses

Сообщение Александр Мурый » 01 май 2017, 18:36

Судя по слову "world" в названии таблиц могу предположить, что таблицы имеют SRID 4326. Радиус буфера задаётся у вас явно не в градусах.

Попробуйте преобразовать типа геометрии (geography ==> geometry) "на лету":

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

    SELECT world_thickets.*
    FROM world_roads, world_thickets
    WHERE ST_Crosses(ST_Buffer(world_roads.geom::geometry, 10, 'endcap=round join=round'), world_thickets.geom);
Редактор материалов, модератор форума

SmArtem
Новоприбывший
Сообщения: 11
Зарегистрирован: 01 май 2017, 12:49
Репутация: 0

Re: Не работает ST_Buffer + ST_Crosses

Сообщение SmArtem » 02 май 2017, 06:45

Извините, забыл указать проекцию. SRID 32646.
Ваша вставка не помогла.
Заработало с ST_Intersects

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

SELECT world_thickets.*
    FROM world_roads, world_thickets
    WHERE ST_Intersects(ST_Buffer(world_roads.geom, 10, 'endcap=round join=round'), world_thickets.geom);

trir
Гуру
Сообщения: 5271
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Не работает ST_Buffer + ST_Crosses

Сообщение trir » 02 май 2017, 08:19

О юный падаван
DE-9IM познать следует тебе

Ответить

Вернуться в «PostGIS/PostgreSQL»

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя