Koordinaten aus Geometrie in PostGIS holen?

60

Diese Linie:

SELECT geom FROM myLayer.geom

Gibt einen Hex-Wert zurück.

Wie würde ich Dezimalwerte erhalten, was eine für Menschen lesbare Koordination ist?

Kourosh
quelle

Antworten:

71

Verwenden Sie ST_AsText , um das Punktobjekt anzuzeigen:

SELECT ST_AsText(the_geom) 
       FROM myTable;

So zeigen Sie X , Y und das Geom-Objekt an:

SELECT ST_X(the_geom), ST_Y(the_geom), ST_AsText(the_geom) 
       FROM myTable;
Aragon
quelle
3
Ich glaube, dass ST_X & ST_Y nur mit Punkten funktionieren wird. Sie funktionieren nicht mit Polygonen oder Linien.
Devdatta Tengshe
Sie haben Recht Devdatta. es funktioniert nur für punkte. ST_X - Gibt die X-Koordinate des Punkts zurück oder NULL, falls nicht verfügbar. Die Eingabe muss ein Punkt sein. Ich habe meine Antwort aktualisiert.
Aragonien
7
Verwenden Sie für Polygone / Linienst_x(st_centroid(the_geom))
Steve Bennett
11

Mit einer Tabelle in 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
quelle
2
SELECT * ST_AsText(the_geom) FROM table2;

Quelle: Geometrie aus mehreren Tabellen mit PostGIS erhalten?

Mapperz
quelle
1
Möglicherweise müssen Sie nach dem * ein einfügen, um die Felder ordnungsgemäß zu trennen: SELECT *, ST_AsText (the_geom) FROM table2;
Pierre