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.


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));

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.


0

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

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


Saya sudah bekerja dengan fungsi ini!
— Yahia El Haddad
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.