[FOSSGIS-Talk] Hilfe gesucht bei Postgis spatial join

Felix Kunde felix-kunde at gmx.de
Do Sep 27 11:42:29 CEST 2018


Hm, die zusätzliche BBox-Filterung würde ich mit einem WITH-Block voranstellen, so dass du nur mit den gefilterten Polygonen in den JOIN mit den Punkten gehst.

_ST_Intersects macht das gleiche wie ST_Intersects nur ohne zusätzlichen BoundingBox-Tests mit &&. Der passiert ja schon im JOIN, deshalb kannst du es dir im SELECT sparen. ST_Intersects ruft intern && und dann _ST_Intersects auf ;)

Grüße
 

Gesendet: Donnerstag, 27. September 2018 um 11:05 Uhr
Von: "Sven Geggus" <lists at fuchsschwanzdomain.de>
An: fossgis-talk-liste at fossgis.de
Betreff: Re: [FOSSGIS-Talk] Hilfe gesucht bei Postgis spatial join
Felix Kunde <felix-kunde at gmx.de> wrote:

> ich hoffe, ich habs richtig verstanden: Also sobald auch nur ein
> Punktfeature mit einer bestimmten Eigenschaft innerhalb des Polygons
> liegt, soll der Wert true sein?

Genau.

> Dann hätte ich folgende Abfrage mit Dummylisten zum schnellen ausprobieren:
>
> SELECT
> poly.id AS pid,
> bool_or(COALESCE(_ST_Intersects(poly.geom, pt.geom) AND pt.feat = 'foo', FALSE)) AS f1_test,
> bool_or(COALESCE(_ST_Intersects(poly.geom, pt.geom) AND pt.feat = 'bar', FALSE)) AS f2_test
> FROM
> (VALUES (1, 'POLYGON((0 0,2 0,2 2,0 2,0 0))'::geometry), (2, 'POLYGON((2 2,4 2,4 4,2 4,2 2))'::geometry)) AS poly(id, geom)
> LEFT JOIN
> (VALUES (1, 'foo', 'POINT(1 1)'::geometry), (2, 'bar', 'POINT(2 2)'::geometry)) AS pt(id, feat, geom)
> ON poly.geom && pt.geom
> GROUP BY
> poly.id;

Danke. Das sieht doch schon mal super aus.

Um das mit realen Daten auszuprobieren muss ich die Query auf eine BBox
begrenzen.

Normalerweise habe ich da sowas im query:
SELECT ... WHERE ... and geom && SetSRID('BOX3D(x1 y1, x2 y2)'::box3d,4326)

Wo müsste das hin? Hinter "&& pt.geom"?

Und eine zweite Frage noch, was bedeutet der Unterstrich vor ST_Intersects?

Sven

--
"If you don't make lower-resolution mapping data publicly
available, there will be people with their cars and GPS
devices, driving around with their laptops" (Tim Berners-Lee)
/me is giggls at ircnet, http://sven.gegg.us/ on the Web
--
....................................................................
FOSSGIS und OpenStreetMap im OSGeo Park auf der Intergeo 2018
16.-18. Oktober 2018, Messe Frankfurt(M)
https://www.intergeo.de[https://www.intergeo.de]

FOSSGIS 2019, die Konferenz für Open Source GIS mit OpenData und
OpenStreetMap in Dresden!
13.-16. März 2019 an der HTW Dresden
https://fossgis-konferenz.de/2019/[https://fossgis-konferenz.de/2019/]

FOSSGIS Veranstaltungen 2018
https://www.fossgis.de/node/306[https://www.fossgis.de/node/306]

FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
https://www.fossgis.de/[https://www.fossgis.de/] https://twitter.com/fossgis_eV

____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
FOSSGIS-Talk-Liste at fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste[https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste]


Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste