가상 건물의 생성 시 높이 설정에 대한 문의에 대해 답변드립니다.
가상 건물이 생성될 때, 해당 위치의 고도값과 zOffset 속성값이 합산되어 건물의 밑면 높이가 결정됩니다.
문의하신 내용은 이전에 생성된 가상 건물 위에 새로운 가상 건물을 생성하여, 두 건물이 정확히 맞닿게 생성되기를 원하신다는 것으로 이해했습니다.
이를 위해서는 이후에 생성하는 가상 건물의 zOffset 값을 다음과 같이 설정해야 합니다:
새로운 건물의 zOffset = 이전 건물의 윗면 높이 − 이전 건물의 고도값(밑면높이)
1. 이전 건물의 윗면 높이 구하기
이전 건물의 윗면 높이는 현재 사용 중인 마우스 이벤트에서 다음 API를 통해 얻을 수 있습니다:
let intersects = app.intersectAtPixel(e, false);
이 함수는 마우스 픽셀 좌표에 해당하는 건물 및 지형 정보를 반환합니다.
반환된 결과에서 object를 비교하여 원하는 가상 건물인 경우, point 속성의 z 값을 사용하면 해당 위치에서의 윗면 높이를 구할 수 있습니다.

2. 새로운 건물의 zOffset 값 설정
이전에 생성된 건물의 고도값을 저장해 두었다가 새로운 건물을 생성할 때 이를 참조하거나, 다음 함수를 사용하여 해당 위치의 고도값을 구할 수 있습니다:
const height = app._drawArg.getHeightAtPointStrict(world.x, world.y);
height 값은 해당 위치의 world 좌표에서의 지형 고도값입니다.
따라서 새로운 건물의 zOffset 값은 이전 건물의 윗면 높이에서 이 고도값을 뺀 값으로 설정하면 맞닿게 생성됩니다.
필요하신 경우 추가 문의 주시면 상세히 안내드리겠습니다.
감사합니다.
|