Problema con Geometry SRID in PostGIS


10

Ho pianto il mio tavolo (sopportato) in PostGIS

id_borne serial NOT NULL,
  num_borne character varying,
  shape_borne geometry

Ho modificato con successo l'SRID della mia tabella utilizzando

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

Il vecchio SRID era 0.

Il problema è che quando provo ad aggiungere un nuovo elemento alla mia tabella borneho questo messaggio di errore:

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

inserisci qui la descrizione dell'immagine

Questo è il mio problema! L'SRID viene aggiornato ma quando provo ad aggiungere un nuovo punto, ricevo questo messaggio.


2
assicurati di assegnare ai tuoi dati un SRID che corrisponda alla tabella prima di provare a inserirli.
Ian Turton

non capisco, lo srid dei miei dati è lo srid della mia tabella! è lo stesso, no?
Yahia El Haddad,

1
puoi mostrarci una delle tue dichiarazioni di inserimento?
Ian Turton

in questo modo: INSERT INTO borne (num_borne, shape_borne) VALUES (1, POINT (25800, 256000));
Yahia El Haddad,

1
La geometria nell'istruzione insert non ha uno srid. Questa è la causa dell'errore
Devdatta Tengshe,

Risposte:


13

Quello che sta succedendo è che ai dati che si sta tentando di inserire non è assegnato un SRID. Per assegnarne uno, prova a racchiudere la geometria inserita nell'istruzione insert con ST_SetSRID (). Per esempio,

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

o

INSERT INTO public.borne (num_borne, shape_borne) 
VALUES (1, ST_SetSRID(ST_MakePoint(25800 , 256000), 26191));

non ho un tavolo
Yahia El Haddad,

Aggiornato per includere il tuo caso d'uso.
MakinFlippyFloppy

non ha funzionato !
Yahia El Haddad,

Qual è il messaggio di errore? prova anche a correre: select find_srid('public', 'borne', 'shape_borne');per assicurarti che lo srid sia effettivamente impostato sul campo.
MakinFlippyFloppy

va bene! sta lavorando con l'utilizzo di INSERT INTO public.borne (num_borne, shape_borne) VALUES (1, ST_SetSRID (ST_MakePoint (25800, 256000), 26191)); è obbligatorio utilizzare ST_SetSRID (ST_MakePoint (...) per l'aggiunta in questa tabella? per la mia altra tabella (parcelle) è wortking con una normale richiesta di esempio: INSERT INTO parcelle (num_parcelle, shape) VALUES (1, POLYGON (( 0 0, 1 0, 1 1, 0 1, 0 0)));
Yahia El Haddad

6

Se si digita il WKT di una geometria in pgAdmin III, è necessario specificare l'SRID utilizzando la sintassi EWKT, altrimenti il ​​valore predefinito è 0.

Digita questo nel campo della geometria di pgAdmin III:

SRID=26191;POINT(25800 256000)

Altrimenti, @MakinFlippyFloppy ha il modo SQL corretto, usando ST_SetSRID.


0

Il sottile link qui sotto può aiutarti, controlla sotto la pagina ::

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


Lavoro già con questa funzione!
Yahia El Haddad,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.