Problema con Geometry SRID en PostGIS


10

Cesé mi mesa (a cargo) en PostGIS

id_borne serial NOT NULL,
  num_borne character varying,
  shape_borne geometry

Cambié con éxito el SRID de mi tabla usando

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

El viejo SRID era 0.

El problema es que cuando intento agregar un nuevo elemento a mi tabla, aparece borneeste mensaje de error:

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

ingrese la descripción de la imagen aquí

Ese es mi problema! El SRID se actualiza, pero cuando intento agregar un nuevo punto, recibo este mensaje.


2
asegúrese de dar a sus datos un SRID que coincida con la tabla antes de intentar insertarlo.
Ian Turton

No entiendo, ¡la cuadrícula de mis datos es la cuadrícula de mi tabla! es lo mismo, no?
Yahia El Haddad

1
¿Nos puede mostrar una de sus declaraciones de inserción?
Ian Turton

así: INSERTAR EN VALOR (num_borne, shape_borne) VALUES (1, POINT (25800, 256000));
Yahia El Haddad

1
La geometría en su declaración de inserción no tiene una cuadrícula. Esa es la causa del error
Devdatta Tengshe

Respuestas:


13

Lo que sucede es que los datos que está intentando insertar no tienen un SRID asignado. Para asignar uno, intente ajustar la geometría insertada en su declaración de inserción con ST_SetSRID (). P.ej,

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

no tengo mesa
Yahia El Haddad

Actualizado para incluir su caso de uso.
MakinFlippyFloppy

No funcionó !
Yahia El Haddad

¿Cuál es el mensaje de error? también, intente ejecutar: select find_srid('public', 'borne', 'shape_borne');para asegurarse de que la cuadrícula esté configurada en el campo.
MakinFlippyFloppy

¡está bien! está trabajando con el uso de INSERT INTO public.borne (num_borne, shape_borne) VALUES (1, ST_SetSRID (ST_MakePoint (25800, 256000), 26191)); es obligatorio usar ST_SetSRID (ST_MakePoint (...) para agregar en esta tabla? para mi otra tabla (parcelle) está trabajando con una solicitud normal de ejemplo: INSERT INTO parcelle (num_parcelle, shape) VALUES (1, POLYGON (( 0 0, 1 0, 1 1, 0 1, 0 0)));
Yahia El Haddad

6

Si está escribiendo el WKT de una geometría en pgAdmin III, debe especificar el SRID utilizando la sintaxis EWKT; de lo contrario, el valor predeterminado es 0.

Escriba esto en el campo de geometría de pgAdmin III:

SRID=26191;POINT(25800 256000)

De lo contrario, @MakinFlippyFloppy tiene la forma correcta de SQL, utilizando ST_SetSRID.


0

Creo que el siguiente enlace puede ayudarlo, consulte la página siguiente ::

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


¡Ya trabajo con esta función!
Yahia El Haddad
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.