Obtenga valores Lon Lat de un tipo de datos GEOGRAPHY en PostGIS

16

Después de almacenar valores largos de lat como un tipo de datos GEOGRAFÍA, ¿cómo recupero los valores individuales de lat largos?

Intento fallido:

SELECT id, geog, ST_X(geog), ST_Y(geog) FROM locations;

Error:

No function matches the given name and argument types. You might need to add explicit type casts.
Nyxynyx
fuente
1
Para el tipo de datos de geografía use una función válida, ej. ST_MaxX () y ST_MaxY () .
Peter Krauss

Respuestas:

20

La función ST_X (punto) solo admite la geometría (como por ahora).

Una solución alternativa es lanzar el geog a geom usando ::geometry.

Hense su consulta debe ser así:

SELECT id, geog, ST_X(geog::geometry), ST_Y(geog::geometry) FROM locations; 

Y como es geog, el SRID sería 4326 .

También aquí hay una buena fuente para el tipo geog.

nickves
fuente
Gracias, su solución funciona bien (cuando consulta utilizando pgAdmin3). Sin embargo, cuando estoy consultando a partir de PHP (nginx + php5-pies por minuto), me sale el error: Undefined object: 7 ERROR: type "geometry" does not exist. ¿Algunas ideas? stackoverflow.com/questions/15780931/…
Nyxynyx
Bien, me funciona bien.
Felipe
1

No necesita yeso

Intenta usar esta consulta.

SELECT ST_XMax(geog), ST_YMax(geog), ST_AsEWKT(geog)
FROM locations LIMIT 10;

esto funciona para mi.

Peter Krauss
fuente
1
¿Qué versión de PostGIS y PostgreSQL estás usando? Con 9.5 y 2.2, ejecutar la consulta SELECT ST_XMax(ST_GeographyFromText('SRID=4326;POINT(-73.968504 40.779741)'));me da ERROR: function st_xmax(geography) does not exist.
r0estir0bbe
0

intenta usar esta consulta.

SELECT X(the_geom), Y(the_geom), ST_AsEWKT(the_geom)
      FROM locations LIMIT 10;

Espero que te ayude

Aragón
fuente
1
Las funciones X()y Y()no parecen existir. donde obtuviste esos ¿
Zoltán
@ Zoltán, creo X()y Y()son válidos en una revisión anterior de PostGIS, ¿quizás 8.x ?. Actualizado, esa consulta usaría ST_X()y en su ST_Y()lugar.
elrobis
Incluso PostGIS 2.2 no tiene ST_X ( geografía ), vea postgis.net/docs/manual-2.2/ST_X.html
Peter Krauss