2012-12-11 2 views
12

Ho ottenuto una colonna (latlon) che è un ST_MultiPolygon.Posso verificare se un multipoligono contiene punti in PostGIS?

L'altra geometria è un punto che voglio solo verificare se è all'interno di uno dei miei Multipoligoni.

ho provato:

SELECT ST_CONTAINS(latlon, ST_GeometryFromText('POINT(48.208417 16.372472)') 
FROM districts 

Si restituisce sempre false; perché non riesco a controllare se un punto si trova all'interno di un multipoligono con ST_Contains?

risposta

15

Funzionava così:

SELECT name, st_contains(latlon, ST_GeomFromText('POINT(16.391944 48.218056)', 4326)) FROM bezirks 
+0

Inoltre, è possibile utilizzare una query secondaria per specificare la geometria B. SELECT name, ST_Contains (latLon, (SELEZIONA geom FROM b WHERE id = 3)) FROM bezirks – DirtyBirdNJ

2

I ST_Contains lavora con i multi geometrie. È necessario accertarsi che il punto si trovi sullo stesso sistema di coordinate della geometria del poligono.

Inoltre, è necessario sapere che se il punto rientra nel limite del multipoligono non verrà considerato contenuto. In questo caso restituirà false poiché nessun punto all'interno della geometria del poligono.