Setelah menyimpan nilai lat lat sebagai tipe data GEOGRAFI, bagaimana cara mengambil nilai lat lat individu?
Upaya gagal:
SELECT id, geog, ST_X(geog), ST_Y(geog) FROM locations;
Kesalahan:
No function matches the given name and argument types. You might need to add explicit type casts.
postgis
coordinate-system
postgresql
Nyxynyx
sumber
sumber
Jawaban:
Itu ST_X (titik) hanya mendukung geometri (seperti untuk saat ini).
Salah satu solusinya adalah melemparkan geog ke geom menggunakan
::geometry
.Hense permintaan Anda harus seperti ini:
Dan karena geog, SRID akan menjadi 4326 .
Juga inilah sumber yang bagus untuk tipe geog.
sumber
Undefined object: 7 ERROR: type "geometry" does not exist
. Ada ide? stackoverflow.com/questions/15780931/…Tidak perlu dilemparkan
Coba gunakan permintaan ini.
ini bekerja untuk saya.
sumber
SELECT ST_XMax(ST_GeographyFromText('SRID=4326;POINT(-73.968504 40.779741)'));
memberi sayaERROR: function st_xmax(geography) does not exist
.coba gunakan permintaan ini.
Saya harap ini membantu Anda
sumber
X()
danY()
sepertinya tidak ada. Di mana Anda mendapatkan itu?X()
danY()
valid dalam revisi PostGIS yang lebih lama - mungkin 8.x ?. Diperbarui, permintaan itu akan digunakanST_X()
danST_Y()
sebagai gantinya.