于一组几何的调用PostGIS的功能

问题描述 投票:0回答:1

我通过一组几何试图循环,如果他们与另一个几何相交看到,所以是这样的:

select unnest(
    ARRAY[
        ST_Intersects(box,ST_GeomFromText('POINT(4 4)')),
        ST_Intersects(box,ST_GeomFromText('POINT(4.0001 4.0001)')),
        ST_Intersects(box,ST_GeomFromText('POINT(4.4 4.4)')),
        ST_Intersects(box,ST_GeomFromText('POINT(4.4002 4.4002)')),
        ST_Intersects(box,ST_GeomFromText('POINT(5 5)'))
    ]
) from (select ST_MakeBox2D(ST_Point(3,2),ST_Point(5,4)) as box) as sq

我怎样才能做到这一点,而不必单独调用每个点ST_Intersects?

postgis
1个回答
1
投票

如果你的意思是你不想写一篇关于他们的,你可以扭转他们每个人的st_intersects

select st_intersects(st_MakeBox2D(ST_Point(3,2),ST_Point(5,4)), point) from unnest(
    ARRAY[
        ST_GeomFromText('POINT(4 4)'),
        ST_GeomFromText('POINT(4.0001 4.0001)'),
        ST_GeomFromText('POINT(4.4 4.4)'),
        ST_GeomFromText('POINT(4.4002 4.4002)'),
        ST_GeomFromText('POINT(5 5)')
    ]) point;

这样,你不重复交叉,只是UNNEST数组和检查路口的框。当然,内部的检查为他们每个人总是运行。

© www.soinside.com 2019 - 2024. All rights reserved.