Получение координат из геометрии в PostGIS?


60

Эта строка:

SELECT geom FROM myLayer.geom

вернет шестнадцатеричное значение.

Как бы я получил десятичные значения, которые понятны человеку?

Ответы:


53

В дополнение к ST_AsText (который возвращает геометрию как WKT / Хорошо известный текст), есть несколько дополнительных форматов вывода, таких как ST_AsGeoJSON ().

Загляните в http://postgis.net/docs/manual-2.0/reference.html#Geometry_Outputs и выберите, что лучше всего соответствует вашим потребностям.


72

Используйте ST_AsText для просмотра точечного объекта:

SELECT ST_AsText(the_geom) 
       FROM myTable;

Чтобы просмотреть X , Y и объект geom:

SELECT ST_X(the_geom), ST_Y(the_geom), ST_AsText(the_geom) 
       FROM myTable;

3
Я считаю, что ST_X & ST_Y будут работать только с точками. Они не работают с полигонами или линиями.
Девдатта Тенгше

вы правы Devdatta. это работает только для очков. ST_X - вернуть координату X точки или NULL, если она недоступна. На входе должна быть точка. я обновил свой ответ.
Арагон

7
Для полигонов / линий используйтеst_x(st_centroid(the_geom))
Стив Беннетт

11

Со столом в 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 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.