[FOSSGIS-Talk] Hilfe gesucht bei Postgis spatial join

Felix Kunde felix-kunde at gmx.de
Di Sep 25 11:45:52 CEST 2018


Hi Sven,

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?
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;
 
Kann grad nicht einschätzen, ob es schneller ist, ST_Centroid erst in einer übergeordneten Abfrage anzuwenden.

Grüße
Felix
 

Gesendet: Montag, 24. September 2018 um 17:28 Uhr
Von: "Sven Geggus" <lists at fuchsschwanzdomain.de>
An: fossgis-talk-liste at fossgis.de
Betreff: [FOSSGIS-Talk] Hilfe gesucht bei Postgis spatial join
Hallo zusammen,

gegeben sei eine OSM Datenbank mit separaten Tabellen für
Punkte und Polygone im osm2pgsql schema:

planet_osm_hstore_polygon
planet_osm_hstore_point

Ziel ist es nun eine Sicht (ggfs. materialized) zu erstellen, die in etwa
so aussieht:

tags: hstore
way: ST_Centroid(polygon)
feature1: boolean
feature2: boolean

feature1 und feature2 sollen jeweils true sein, wenn sich Punkte aus der
point Tabelle mit dieser Eigenschaft (amenity=feature1) innerhalb der
Polygongeometrie befinden.

Vermutlich läuft die Frage darauf raus ob man ein spatial join innerhalb
eines CASE WHEN machen kann.

Gruss

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