Saat mengimpor data shapefile saya ke PostGIS, saya tidak memilih Proyeksi yang tepat.
Bagaimana saya sekarang mengubah SRID data, tanpa mengubah Koordinat?
Saat mengimpor data shapefile saya ke PostGIS, saya tidak memilih Proyeksi yang tepat.
Bagaimana saya sekarang mengubah SRID data, tanpa mengubah Koordinat?
Jawaban:
Ada fungsi garis tunggal yang melakukan ini untuk Anda. Cukup gunakan query SQL berikut:
select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;
Tetapi, jika Anda seperti saya, Anda akan tertarik pada langkah-langkah miniatur tingkat rendah. Secara logis, fungsi di atas setara dengan proses empat langkah berikut:
Di tabel geometry_columns, perbarui SRID ke nilai yang diperlukan.
Jatuhkan contraint di atas meja, dengan menggunakan pernyataan SQL berikut
ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;
Perbarui SRID dari geometri dengan menggunakan pernyataan SQL berikut
UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);
Tambahkan kembali contraint dengan menggunakan pernyataan SQL berikut
ALTER TABLE mytable
ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));
Dengan PostGIS 2.x, kolom geometri biasanya menggunakan typmods like geometry(Point, 1234)
. Untuk ini, Anda dapat menggunakan ALTER TABLE untuk secara langsung mengubah jenis kolom geometri dalam satu langkah.
Misalnya, untuk mengatur SRID geom
in mytable
ke WGS84, gunakan ST_SetSRID :
ALTER TABLE mytable
ALTER COLUMN geom
TYPE geometry(Point, 4326)
USING ST_SetSRID(geom, 4326);
Perhatikan bahwa ini hanya akan mengubah SRID, tetapi tidak mengubah data koordinat.
UpdateGeometrySRID
tidak mendukung.