0
I했습니다 roadfollowing
테이블을 포함하는 열변환
COLUMN geom geometry(LineString,4326);
I했습니다 또한 sub_polygon
테이블,
COLUMN geom geometry(MultiPolygon,4326);
내가 다각형을 빼기하고자하는 열을 포함 roadfollowing
테이블에 저장된 선 스트링의 sub_polygon
에 저장되고이 새로운 데이터로 테이블을 갱신합니다.
ERROR: Geometry type (MultiLineString) does not match column type (LineString)
내가 문자열 형식으로 결과를 확인하기 위해 쿼리를 수정 한 : 오류 다음
WITH RESULTS as (
SELECT ST_Difference(public.roadnetwork.geom, public.sub_polygon.geom)
FROM public.roadnetwork, public.sub_polygon
),
FILTERED_RESULTS as (
SELECT RESULTS.st_difference FROM RESULTS where GeometryType(RESULTS.st_difference) <> 'GEOMETRYCOLLECTION'
)
UPDATE public.roadnetwork
SET geom = FILTERED_RESULTS.st_difference
FROM FILTERED_RESULTS;
하지만 난 구하십시오
나는 다음과 같은 쿼리를 수행하려고했습니다
WITH RESULTS as (
SELECT ST_Difference(public.roadnetwork.geom, public.sub_polygon.geom)
FROM public.roadnetwork, public.sub_polygon
),
FILTERED_RESULTS as (
SELECT ST_AsText(RESULTS.st_difference) FROM RESULTS where GeometryType(RESULTS.st_difference) <> 'GEOMETRYCOLLECTION'
)
SELECT * from FILTERED_RESULTS;
결과에 숫자가 MULTILINESTRING
인 것을 볼 수 있습니다. canno
...
MULTILINESTRING((51.5054201 25.3462475,51.505411 25.3462656,51.5052981 25.3464467,51.5051894 25.3466039,51.5049763 25.3469023,51.5048058 25.347141,51.5046538 25.347324,51.5044476 25.3475493,51.5041983 25.3478035,51.5038722 25.3481104,51.5035605 25.3483885,51.509695 25.3489269,51.5026179 25.3492445,51.5022888 25.349556),(51.5022888 25.349556,51.5022898 25.3495551),(51.5022888 25.349556,51.5017303 25.3500517))
LINESTRING(51.5017303 25.3500517,51.5014725 25.3502989,51.5013472 25.3504121)
LINESTRING(51.5013472 25.3504121,51.501175 25.3505679)
...
가 어떻게 LINESTRING
에 MULTILINESTRING
은 내가 성공적으로 내 테이블을 업데이트 할 수 있습니다 변환하기 위해 내 쿼리를 업데이트 할 수 있습니다 : 데이터가 없습니다 일치하기 때문에 t은 roadnetwork.geom
열에 복사?