질문답변

제목[re]landHeightFunction 옵션 문의드립니다.2026-01-28 11:38
카테고리GeOnDT for JS
작성자

안녕하세요.

문의 주신 내용을 확인한 결과,
landHeightFunction 속성 값을 설정한 상태에서 mesh를 생성할 경우, 모델이 위치한 타일의 고도값을 읽어오는 과정이 포함되어 있습니다.

다만, 해당 시점에 타일이 아직 로드되지 않은 경우, 고도값을 정상적으로 가져오지 못하면서 잘못된 높이값이 적용되고, 이로 인해 모델이 올바르게 출력되지 않는 현상을 확인하였습니다.

현재 사용 중이신 K-GeoP 버전에서
요청하신 것처럼 사용자가 지정한 높이값으로 모델을 설정하기 위해서는,
객체 생성 이후에 높이값을 직접 지정하는 방식으로 처리하시는 것이 가장 안정적인 방법으로 생각됩니다.

1. 객체 생성 완료 후 mesh 순회를 통한 높이값 설정 방법

function setHeight(height){ // 높이값 설정
    const modelList = layer._modelList; //  layer : U3dModelShapeLayer
    if(!modelList || modelList.length === 0 ) return;
    for (let i = 0; i < modelList.length; i++) {
        const mesh = modelList[i];
        mesh.position.z = height; //설정 높이값
       mesh._bbox = mesh.getBBox();
        if(mesh._bbox && mesh._center){
            mesh._bbox.getCenter(mesh._center); // 라벨 가시화시 mesh._center 위치에 라벨 생성
       }
    }
}
 

높이값을 변경한 이후에는,
mesh._center 위치 또한 함께 갱신해 주셔야 라벨 생성 시 올바른 위치에 표시됩니다.

해당 방식으로 적용하시면, 타일 고도 로딩 여부와 관계없이
원하시는 높이값으로 모델을 안정적으로 제어하실 수 있습니다.

 

 

관련 내용에 대해서 질문 사항 있으시면 답변 부탁드리겠습니다. 

감사합니다. 좋은 하루 되세요.

 

#국가공간정보통합플랫폼(K-GeoP)#K-Geop