Masalah dengan Geometri SRID di PostGIS

10

Saya berhenti dari meja saya (ditanggung) di PostGIS

id_borne serial NOT NULL,
  num_borne character varying,
  shape_borne geometry

Saya berhasil mengubah SRID meja saya menggunakan

select UpdateGeometrySRID('public', 'borne', 'shape_borne', 26191) ;

SRID lama adalah 0.

Masalahnya adalah ketika saya mencoba menambahkan elemen baru ke meja saya, bornesaya memiliki pesan kesalahan ini:

geometry srid (0) does not match column srid (26191)

masukkan deskripsi gambar di sini

Itu masalah saya! SRID diperbarui tetapi ketika saya mencoba menambahkan titik baru, saya mendapatkan pesan ini.

Yahia El Haddad
sumber
2
pastikan Anda memberi data Anda SRID yang cocok dengan tabel sebelum mencoba memasukkannya.
Ian Turton
saya tidak mengerti, srid data saya adalah srid meja saya! itu sama, bukan?
Yahia El Haddad
1
dapatkah Anda menunjukkan kepada kami salah satu pernyataan masukan Anda?
Ian Turton
seperti ini: INSERT INTO borne (num_borne, shape_borne) VALUES (1, POINT (25800, 256000));
Yahia El Haddad
1
Geometri Dalam pernyataan insert Anda tidak memiliki srid. Itulah penyebab kesalahan
Devdatta Tengshe

Jawaban:

13

Apa yang terjadi adalah bahwa data yang Anda coba masukkan tidak memiliki SRID yang ditetapkan. Untuk menetapkan satu, coba balutkan geometri yang dimasukkan dalam pernyataan sisipan Anda dengan ST_SetSRID (). Misalnya,

INSERT INTO public.borne (num_borne, shape_borne) 
    (SELECT num_borne, ST_SetSRID(shape_borne, 26191)
     FROM public.sometable);

atau

INSERT INTO public.borne (num_borne, shape_borne) 
VALUES (1, ST_SetSRID(ST_MakePoint(25800 , 256000), 26191));
MakinFlippyFloppy
sumber
saya tidak punya meja
Yahia El Haddad
Diperbarui untuk menyertakan use case Anda.
MakinFlippyFloppy
Tidak berfungsi !
Yahia El Haddad
Apa pesan kesalahannya? juga, coba jalankan: select find_srid('public', 'borne', 'shape_borne');untuk memastikan bahwa srid benar-benar diatur di lapangan.
MakinFlippyFloppy
tidak apa-apa! ini bekerja dengan menggunakan INSERT INTO public.borne (num_borne, shape_borne) VALUES (1, ST_SetSRID (ST_MakePoint (25800, 256000), 26191)); itu wajib untuk menggunakan ST_SetSRID (ST_MakePoint (...) untuk menambahkan dalam tabel ini? untuk tabel saya yang lain (parcelle) itu berjalan dengan permintaan normal untuk contoh: INSERT INTO parcelle (num_parcelle, shape) VALUES (1, POLYGON (( 0 0, 1 0, 1 1, 0 1, 0 0)));
Yahia El Haddad
6

Jika Anda mengetik WKT geometri ke pgAdmin III, Anda harus menentukan SRID menggunakan sintaks EWKT, jika tidak maka defaultnya adalah 0.

Ketikkan ini ke dalam bidang geometri pgAdmin III:

SRID=26191;POINT(25800 256000)

Jika tidak, @MakinFlippyFloppy memiliki cara SQL yang benar, menggunakan ST_SetSRID.

Mike T
sumber
0

I thin link di bawah ini dapat membantu Anda, Lihat di bawah halaman ::

http://postgis.org/docs/UpdateGeometrySRID.html

Hardik
sumber
Saya sudah bekerja dengan fungsi ini!
Yahia El Haddad