Polygon Holes 인접 hole 관련 추가 문의

,

안녕하세요. 이전에 polygon hole 관련하여 답변 주셨던 글에 이어 추가 문의 드립니다.

[이전글]

[문의사항]

이전 답변에서 polygon hole 을 만들때는 각 hole 이 겹치거나 맞닿으면 안된다 라고 안내해주셨습니다.

주신 내용처럼 테스트 하였을때 맞닿은 hole 이 있는 경우에 fill 이 깨지는 현상을 확인 했습니다.

해당 케이스들이 많아서 데이터 제공 측에도 정제를 요청해둔 상태이긴 하나, 추가 안내 및 정리가 필요한 부분이 있는것 같습니다.

  1. 위 제약사항(polygon 내 hole 끼리 겹침, 맞닿음 금지)가 공식 문서 어디에 명시되어 있는지 공유 부탁 드립니다.

  2. 우선 이전에는 임시로 dimscreen 으로 처리를 하였는데 polygonHole 이 다른 색상으로 2개 이상 존재 시 에는 dimScreen 이 1개만 존재할수 있어서 보여질수가 없는 상태 입니다. 갯수를 늘릴수는 없는것인지 dimscreen 과 polygonHole에 어떤 차이에서 이 현상이 다르게 보여지는것인지 궁금 합니다.

  3. withHole 테스트 시 겹치는 hole 에 따라서 깨지는 현상이 일어날떄도 일어나지 않을때도 있습니다. 그래서 꼭 겹쳤을때만 일어나는것이 아닌 다른 이유도 있을것이라고 판단되는데 확인이 가능 할까요..? 테스트한 폴리곤 데이터 공유 드립니다. 테스트 했을때는 [2,3] [4,5] [2,3,5] 등 몇개 데이터들만 그려주도록 반복 테스트 해봤는데 겹치는 hole 이 있더라도 발생이 되는 경우도 안되는 경우도 존재 했습니다.

    [데이터 공유]

    카카오공유.txt (16.2 KB)

데이터 제공을 여러 외부 업체에서 받다 보니 정제를 하기 힘든상황이라 카카오쪽에 문의를 드립니다.

확인 부탁 드립니다.

감사합니다.

@kelly.ka

안녕하세요~
혹시 이 문의 건 추가로 가이드해주실 수 있는 부분이 있을까요?

답변이 늦었습니다.

  1. 공식적인 제약사항 문서는 없습니다. 추가해 놓도록 하겠습니다.
  2. DimScreenLayer 는 1개만 존재 할 수 있습니다. 그리고, Dimmed 되는 영역을 지정할 수 없고 보여지는 Viewport 영역 전체를 덮습니다. DimScreenLayer 안에는 hole 은 여러개 다른 색상으로 그릴 수 있습니다. vs 그리고, 일반 Polygon 은 DimScreen 과 달리 여러개 생성 할 수 있고 Polygon 이 그려지는 영역을 지정 할 수 있고, 그 안에 홀도 여러개 생성 할 수 있습니다. DimScreenLayer 자체의 갯수를 늘릴 수는 없습니다. 그 안에 hole 처럼 Polygon 을 여러개 추가할 수 있는 구조입니다.
  3. 아직, 직접 테스트하진 않았지만 올려주신 데이터만 보면, 아래의 좌표들이
  4. [37.52103, 126.91539000000002] (2회 출현)
    • hole_5의 31번째 좌표

    • hole_6의 1번째 좌표

  5. [37.52013, 126.91618000000001] (2회 출현)
    • hole_5의 30번째 좌표

30번-31번 정점이 세트로 일치하는 것으로 보아, 단순히 두 구멍은 점 하나가 아닌 하나의 선분(Edge)을 완벽하게 공유하며 맞닿아 있어 보입니다. "구멍"을 그릴 때 경계선을 기준으로 안팎을 나눕니다. 그런데 두 구멍이 선 하나를 공유하면, 해당 선이 "구멍의 끝"인지 "다른 구멍의 시작"인지 등 알고리즘마다 충돌하고 문제를 일으킬 수 있습니다.

구멍도형 데이터들이 단순히 정점을 공유한 경우도 있고, 저렇게 선분을 공유하기도 하고 겹치는 양이 많다면 또 다르게 표현 되기도 할 것 같습니다. 아마도, 좌표들이 겹치는 양상이 다르다 보니 데이터에 따라 다르게 보여지는 것 같습니다.

안녕하세요.

우선 확인해주셔서 감사 합니다.

저희 앱 특성상 hole 밖 영역에 N개의 색이 들어가야하는 경우가 있어서 DimScreen 을 사용하기에는 제약이 좀 있는 상황이였습니다.

그래서 Polygon 을 사용할수밖에 없었는데 현재 알고리즘으로는 Polygon 에서 N개의 구멍이 있을때 2개 이상에 구멍이 하나의 선분 이상을 공유하며 맞닿아 있으면 알고리즘 충돌로 해당 현상이 일어날수 있는것으로 확인 했습니다.

혹시 해당 알고리즘을 고도화 하실 계획같은게 있을까요?

저희가 기존 네이버 지도를 사용하다가 카카오 지도로 변경했는데 해당 현상이 일어나고 있는거라서요.

감사합니다.

말씀하신 부분에 대해서 검토해 보겠습니다.

1개의 좋아요

감사합니다.

검토 결과 나오면 댓글 한번만 부탁 드립니다. 내부 공유가 필요 해서요.