Saat mengimpor data shapefile saya ke PostGIS, saya tidak memilih Proyeksi yang tepat.
Bagaimana saya sekarang mengubah SRID data, tanpa mengubah Koordinat?
sumber
Saat mengimpor data shapefile saya ke PostGIS, saya tidak memilih Proyeksi yang tepat.
Bagaimana saya sekarang mengubah SRID data, tanpa mengubah Koordinat?
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
inmytable
ke WGS84, gunakan ST_SetSRID :Perhatikan bahwa ini hanya akan mengubah SRID, tetapi tidak mengubah data koordinat.
sumber
UpdateGeometrySRID
tidak mendukung.