PostGIS에서 형상 SRID 관련 문제


11

PostGIS에서 테이블을 멈췄습니다.

id_borne serial NOT NULL,
  num_borne character varying,
  shape_borne geometry

테이블을 사용하여 테이블의 SRID를 성공적으로 변경했습니다.

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

이전 SRID는 0입니다.

문제는 테이블에 새 요소를 추가하려고 할 borne때이 메시지 오류가 있다는 것입니다.

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

여기에 이미지 설명을 입력하십시오

그게 내 문제 야! SRID가 업데이트되었지만 새 포인트를 추가하려고하면이 메시지가 나타납니다.


2
데이터를 삽입하기 전에 테이블과 일치하는 SRID를 데이터에 제공하십시오.
이안 투턴

나는 이해하지 못한다, 내 데이터의 srid는 내 테이블의 srid입니다! 동일합니까?
Yahia El Haddad

1
삽입 문 중 하나를 보여 주시겠습니까?
Ian Turton

다음과 같이 : INSERT INTO borne (num_borne, shape_borne) VALUES (1, POINT (25800, 256000));
Yahia El Haddad

1
insert 문의 지오메트리에 srid가 없습니다. 이것이 오류의 원인입니다
Devdatta Tengshe

답변:


14

현재 삽입하려는 데이터에 SRID가 할당되어 있지 않습니다. 하나를 할당하려면 삽입 명령문에 삽입 된 형상을 ST_SetSRID ()로 랩핑하십시오. 예 :

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

또는

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

나는 약간의 테이블이 없다
Yahia El Haddad

사용 사례를 포함하도록 업데이트되었습니다.
MakinFlippyFloppy

그것은 작동하지 않았다 !
Yahia El Haddad

오류 메시지는 무엇입니까? 또한, 실행을 시도 select find_srid('public', 'borne', 'shape_borne');하십시오 : 실제로 건조가 필드에 설정되어 있는지 확인하십시오.
MakinFlippyFloppy

괜찮아! INSERT INTO public.borne (num_borne, shape_borne) VALUES (1, ST_SetSRID (ST_MakePoint (25800, 256000), 26191))를 사용하여 작업하고 있습니다. 이 테이블에 추가하기 위해 ST_SetSRID (ST_MakePoint (...)를 사용해야합니다. 내 다른 테이블 (parcelle)의 경우 일반적으로 exmple 요청이 발생합니다. INSERT INTO parcelle (num_parcelle, shape) VALUES (1, POLYGON (( 0 0, 1 0, 1 1, 0 1, 0 0)));
Yahia El Haddad

6

형상의 WKT를 pgAdmin III에 입력하는 경우 EWKT 구문을 사용하여 SRID를 지정해야합니다. 그렇지 않으면 기본값은 0입니다.

pgAdmin III의 geometry 필드에 이것을 입력하십시오 :

SRID=26191;POINT(25800 256000)

그렇지 않으면 @MakinFlippyFloppy는 ST_SetSRID를 사용하여 올바른 SQL 방식을 갖습니다.


0

아래 링크가 도움이 될 수 있습니다. 아래 페이지를 확인하십시오.

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


나는 이미이 기능으로 작업하고있다!
Yahia El Haddad
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.