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.