geos3.2.2에서 intersects 연산에서 주의할 것

듀라맵이 GEOS 라이브러리를 사용합니다. 공간연산을 위해 사용하는 라이브러리인데.. 공간데이터를 가공하기 위해 듀라맵으로 툴을 만들어 사용하고 있었는데.. 이상한 현상이 발생해서 문제를 쫓다 쫓다.. 쫓다가.. 또 쫓다가.. 쫓다가.. 쫓다가.. 결국 GEOS에서 문제를 발견하여 그 내용을 정리해 봅니다. 나중에 잊을 소지가 다분하므로…

아래와 같은 도형이 있습니다. 사각형 폴리곤 하나와 4개의 포인트라고 할때 이 4개의 포인트는 사각형 폴리곤 가장자리에 정확히 일치해서 놓입니다. 4개는 각각 사각형 폴리곤의 왼쪽 모서리, 오른쪽 모서리, 위쪽 모서리, 아래쪽 모서리에 놓입니다.
사용자 삽입 이미지사각형에 대한 지오메트리에 대해서 포인트 1, 2, 3, 4에 대해 intersets 연산을 수행하면 희한하게도 1과 2는 intersets가 false를 반환하고 3과 4는 true를 반환합니다. 제가 사용하는 GEOS의 버전이 3.2.2인데.. 오늘 오랜만에 GEOS의 공식 배포 사이트에 보니 올해 1월말에 3.3.7로 올랐군요. 아마도 분명… 새로운 버전에서는 이러한 문제가 해결되었다고 생각합니다. 언제 시간을 내서 GEOS의 새로운 버전으로 변경해서 듀라맵을 배포해야겠습니다.

“geos3.2.2에서 intersects 연산에서 주의할 것”에 대한 3개의 댓글

  1. 안녕하세요
    gis 역사를 둘러보다가 이거 보고 궁금증이 생겨 질문드려봅니다.

    qgis에서도 라인과 포인트로 intersect 시 접선?에 포인트가 붙어잇을때
    랜덤적으로 intersect 결과가 나오는데

    이런 오류가
    1.단순 모듈 오류라고 봐야하는지
    2.원래 수학적으로 접선에 일치하는 점을 정확하게 구할수 없는 부분인지(근사값만 존재하는지)
    3.접선에 일치하는 포인트를 구할수 있지만 컴퓨터의 수학적표기 한계?(소수)라고 봐야하는지
    궁굼합니다 ㅋ

    1. 안녕하세요 ^^
      QGIS도 geos 라이브러리를 사용하는데 지금까지도 말씀하신 현상이 있나보군요.
      렌덤적으로 그 결과가 바뀐다면 문제라고 보여지는데 말입니다.
      음… geos 개발자가 이 사실을 인지하고 있다면 해결이 가능할텐데..
      왜 아직도 해결이 안되는지 이상하다 싶습니만 뭔가 이유가 있을듯합니다.
      하지만 전 그 이유를 모르겠어요.
      암튼 덕분이 아직까지도 이런 문제가 있다는 것을 알게 되었네요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다