inValid Geometry 해결.md
· 786 B · Markdown
原始檔案
postgresql의 ST_Intersects()를 사용중 아래와 같이 오류가 발생했다.
```
오류 발생: SQLSTATE = XX000, SQLERRM = GEOSIntersects: TopologyException: side location conflict at 298600.73221767566 264940.33694780665. This can occur if the input geometry is invalid.
```
유효하지않은 geom이 존재한다고 한다.
ST_IsValid()함수를 이용하여 어떤놈들인지 찾아본다.
```sql
select pnu from lsmd_cont_ldreg where ST_IsValid(geom)
```
이놈들을 ST_MakeValid()이용해 유효한 geom으로 업데이트해준다.
(단, geom이 없어질수도, 하나의pnu에 여러 geom이 생기거나 예기치 못한 방식으로 처리될 수 있으니 주의바람)
```sql
update lsmd_cont_ldreg
set geom = ST_MakeValid(geom)
where not ST_IsValid(geom)
```
postgresql의 ST_Intersects()를 사용중 아래와 같이 오류가 발생했다.
오류 발생: SQLSTATE = XX000, SQLERRM = GEOSIntersects: TopologyException: side location conflict at 298600.73221767566 264940.33694780665. This can occur if the input geometry is invalid.
유효하지않은 geom이 존재한다고 한다. ST_IsValid()함수를 이용하여 어떤놈들인지 찾아본다.
select pnu from lsmd_cont_ldreg where ST_IsValid(geom)
이놈들을 ST_MakeValid()이용해 유효한 geom으로 업데이트해준다. (단, geom이 없어질수도, 하나의pnu에 여러 geom이 생기거나 예기치 못한 방식으로 처리될 수 있으니 주의바람)
update lsmd_cont_ldreg
set geom = ST_MakeValid(geom)
where not ST_IsValid(geom)