Saya ingin membuat POINT menggunakan kolom bujur dan lintang dari tabel yang ada .
Berikut tautan ke dokumentasi ST_MakePoint .
Ini meja saya:
CREATE TABLE sysinst.bio (
oid INTEGER PRIMARY KEY,
longitude FLOAT,
latitude FLOAT,
geom GEOMETRY(POINT, 26913)
);
Menambahkan Kolom Geometri:
SELECT AddGeometryColumn ('sysinst', 'bio', 'geom', 26913, 'POINT', 2);
Inilah pertanyaan saya:
UPDATE sysinst.bio SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 26913);
Tidak ada kesalahan yang dikembalikan meskipun POIN salah diplot ketika dilihat di QGIS.
Karena (-97.5959, 21.1922)
, saya menerima(-109.4896, 0.0002)
Ada saran?
Saya terbuka untuk melakukan ini dengan lebih efisien jika ada cara yang lebih mudah.
Jawaban:
Mungkin saya tidak mengerti, tetapi Anda tampaknya memasukkan koordinat Longitude Latitude (-97, 21) dalam derajat, ke CRS yang berbasis UTM, dan menggunakan meter. Jika Anda mendeklarasikan ini sebagai SRID 26918, maka nilai long / lat harus dalam CRS itu. Jika nilai Long / Lat dalam derajat maka Anda harus membuat geometri sebagai ST_SetSRID (MakePoint (...), 4326) kemudian mengubah layer menjadi 26913. Jadi, kumpulkan semuanya, jika Anda perlu memiliki layer di 26913, tetapi kolom bujur / lintang Anda dalam derajat, dengan CRS 4326, lalu
sumber