2012-06-15 1 views
0

Я хочу знать, есть ли перекрытие между polygon1.the_geom и polygon2.the_geom. Тем не менее, я не хочу знать для каждого экземпляра, если есть перекрытие. Скорее, если есть только одно перекрытие в любом месте в ST_Overlap, я хочу вернуть одно значение, что является «истинным». Если совпадение не происходит, я хочу получить только одно значение «false». Использование ST_Union для объединения результатов не будет работать на boolean, что я знаю. Однако мне нужно масштабировать результат запроса до одной строки.Как я могу получить ST_Overlap для возврата единственного значения true или false?

SELECT ST_Overlaps(polygon1.the_geom, polygon2.the_geom) from polygon1, polygon2 

ответ

0

Я не знаком с PostGIS, но вы должны быть в состоянии присоединиться на ST_Overlaps(...) и посмотреть, если вы получите что-нибудь:

select exists(
    select 1 
    from polygon1 
    join polygon2 on ST_Overlaps(polygon1.the_geom, polygon2.the_geom) 
) 

РЕГИСТРИРУЙТЕСЬ условия являются более универсальными, чем думает большинство людей.

+0

Yeap, работает отлично. Большое спасибо. – John

Смежные вопросы