안녕하세요.
문의 주신 내용은 U3dModelShapeLayer로 생성된 객체(건물)에 대해 모든 객체에 동일한 높이를 적용할 수 있는지, 그리고 그 적용 방법에 대한 것으로 이해했습니다.
해당 기능은 레이어 생성 시 속성값을 설정하여 구현할 수 있으며, 아래와 같은 방식으로 사용 가능합니다.
> 레이어 생성 시 건물 높이 설정( heightFunction )
- U3dModelShapeLayer 생성 시 heightFunction에 함수를 정의하면, 각 객체(Feature)에 적용될 건물 높이를 제어할 수 있습니다.
const layer = new Union3D.model.U3dModelShapeLayer({
name: name,
minlevel: 17,
... /* 속성값 */ ...
heightFunction: heightFunction, // 건물 높이 설정 함수
landHeightFunction: landHeightFunction,// 지표면 기준 높이 설정 함수
});
해당 예제에서의 정의된 내용은 Feature 정보를 바탕으로 높이를 설정하는 내용입니다.
function heightFunction(feature) {
let height;
if ((feature != undefined) && (feature.properties != undefined)) {
let floorHeight = feature.properties['EXTR_HG'];
if (floorHeight !== undefined)
height = floorHeight;
}
return height;
}
문의 주신 것처럼 모든 건물에 동일한 높이(예: 15)를 적용하고자 할 경우,
heightFunction에서 고정된 값을 반환하도록 정의하시면 됩니다.
function heightFunction(feature) {
return 15;
}
|