Po zapisaniu wartości lon lat jako typu danych GEOGRAFIA, jak mogę pobrać poszczególne wartości lon lat?
Nieudana próba:
SELECT id, geog, ST_X(geog), ST_Y(geog) FROM locations;
Błąd:
No function matches the given name and argument types. You might need to add explicit type casts.
postgis
coordinate-system
postgresql
Nyxynyx
źródło
źródło
Odpowiedzi:
Funkcja ST_X (punkt) obsługuje tylko geometrię (jak na razie).
Jednym obejściem jest rzutowanie geogiem na geom za pomocą
::geometry
.Hense twoje zapytanie powinno wyglądać tak:
A ponieważ jest to geog, SRID wyniesie 4326 .
Również tutaj jest dobre źródło dla typu geog.
źródło
Undefined object: 7 ERROR: type "geometry" does not exist
. Jakieś pomysły? stackoverflow.com/questions/15780931/…Nie potrzebujesz obsady
Spróbuj użyć tego zapytania.
mi to pasuje.
źródło
SELECT ST_XMax(ST_GeographyFromText('SRID=4326;POINT(-73.968504 40.779741)'));
daje miERROR: function st_xmax(geography) does not exist
.spróbuj użyć tego zapytania.
Mam nadzieję, że Ci to pomoże
źródło
X()
iY()
wydają się nie istnieć. Skąd je masz?X()
iY()
obowiązują w starszej rewizji PostGIS - może 8.x ?. Zaktualizowano, to zapytanie użyjeST_X()
iST_Y()
zamiast tego.