1 votos

¿Extracción de un punto geométrico específico de una geometría MultiPoint mediante PostGIS?

Estoy trabajando con geometrías multipunto en postgis y me gustaría extraer el punto de geometría asociado al mayor valor y de la geometría multipunto. ¿Cómo puedo realizar esta tarea?

Por ejemplo, si mi geometría multipunto está definida de la siguiente manera:

'MULTIPOINT(2 5, 3 1, 4 0)'

Entonces, ¿cómo puedo reunir el punto geométrico asociado al mayor valor y?

La siguiente consulta me dirá que el mayor valor de y es 5:

SELECT ST_ASTEXT(MP), ST_YMAX(MP) FROM 
(SELECT ST_GeomFromText('MULTIPOINT(2 5, 3 0.9, 4 1.2)') as MP) as foo;

Sin embargo, me gustaría crear una consulta que devuelva 'POINT(2 5)' en lugar del valor YMAX de 5.

¿Alguna idea?

3voto

Bertolt Puntos 213

En resumen: utilice ST_Dump que romperá tu MULTIPOINT en sus partes constituyentes. A continuación, ordene descendentemente por ST_Y(geom) y obtener la primera fila.

He aquí una consulta que funciona en mi PostGIS:

SELECT ST_AsText(geom)
FROM ST_Dump(ST_GeomFromText('MULTIPOINT(2 5, 3 1, 4 0)'))
ORDER BY ST_Y(geom) DESC
LIMIT 1

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X