Obtenir les coordonnées de la géométrie dans PostGIS?

60

Cette ligne:

SELECT geom FROM myLayer.geom

retournera une valeur hexadécimale.

Comment pourrais-je obtenir des valeurs décimales, ce qui est une coordination lisible par l'homme?

Kourosh
la source

Réponses:

72

Utilisez ST_AsText pour afficher l'objet de point:

SELECT ST_AsText(the_geom) 
       FROM myTable;

Pour afficher X , Y et l'objet geom:

SELECT ST_X(the_geom), ST_Y(the_geom), ST_AsText(the_geom) 
       FROM myTable;
Aragon
la source
3
Je pense que ST_X & ST_Y ne fonctionnera qu'avec des points. Ils ne fonctionnent pas avec des polygones ou des lignes.
Devdatta Tengshe le
vous avez raison Devdatta. cela ne fonctionne que pour les points. ST_X - Retourne la coordonnée X du point ou NULL si non disponible. L'entrée doit être un point. J'ai mis à jour ma réponse.
Aragon
7
Pour les polygones / lignes, utilisezst_x(st_centroid(the_geom))
Steve Bennett le
11

Avec une table en UTM

SELECT 
ST_X(table.geometry) AS X1, --point x
ST_Y(table.geometry) AS Y1, --point y
ST_X(ST_TRANSFORM(table.geometry,4674)) AS LONG, -- longitude point x SIRGAS 2000
ST_Y(ST_TRANSFORM(table.geometry,4674)) AS LAT, --latitude point y SIRGAS 2000
ST_ASTEXT(table.geometry) AS XY, --wkt point xy
ST_ASTEXT(ST_TRANSFORM(table.geometry,4674)) AS LongLat --using st_transform to get wkt with longitude and latitude (4674 is the SIRGAS 2000 SRC by south america)
FROM
table 
phsaires
la source