GeOnDT GeOnDT for JS

Class: U3dVectorLayer

U3dVectorLayer

~extends U3dLayer
점·선·면·박스 등 3D 도형(U3dGeometry 파생 객체)을 담아 화면에 가시화하는 레이어
도형을 생성한 뒤 addGeometry로 등록하면 화면에 표시되며, 가시화·축척·제거를 레이어 단위로 일괄 제어합니다.

new U3dVectorLayer(opt)

Name Type Description
opt U3dVectorLayerCO optional

생성자 옵션

See:

Members

autoHeightboolean

Methods

addGeometry(geom)

3D Geometry 객체를 레이어에 추가하여 화면에 가시화하는 함수
추가 후 도형의 setPosition/addPosition으로 좌표를 지정하면 해당 위치에 그려집니다. 레이어에 autoHeight·scaleRatio·renderOffset이 설정되어 있으면 추가 시점에 함께 적용됩니다.

Name Type Description
geom U3dGeometry

추가할 Geometry 객체

clear()

전체 3D Geometry 객체를 제거하고 레이어를 비우는 함수
목록 제거와 함께 지오메트리·재질·라벨 자원까지 해제하므로, 제거한 도형은 재사용할 수 없습니다. 자원을 유지한 채 목록만 비우려면 removeAllGeometries를 사용합니다.

getAutoHeight()boolean

자동 높이 활성화 여부를 반환하는 함수

Returns:
Type Description
boolean 자동 높이 활성화 여부

getBoundingBox()Box3

등록된 전체 Geometry를 감싸는 바운딩박스를 반환하는 함수
좌표는 월드 좌표(EPSG:3857) 기준이며, 등록된 도형이 없으면 비어 있는 Box3를 반환합니다.

Returns:
Type Description
Box3 전체 도형을 감싸는 바운딩박스

getGeometries()IterableIterator.<U3dGeometry>

등록된 3D Geometry 객체 리스트를 반환하는 함수

Returns:
Type Description
IterableIterator.<U3dGeometry> 등록된 U3dGeometry

getGeometryArray()Array.<U3dGeometry>

등록된 3D Geometry 객체 배열을 반환하는 함수

Returns:
Type Description
Array.<U3dGeometry> 등록된 U3dGeometry 배열

getGeometryByName(name)U3dGeometry|undefined

이름으로 3D Geometry 객체를 검색하는 함수
도형 생성 시 지정한 name 옵션과 비교하며, 동일한 이름이 여러 개면 먼저 찾은 객체만 반환합니다.

Name Type Description
name string

객체 이름

Returns:
Type Description
U3dGeometry | undefined 3D Geometry 객체. 없으면 undefined

getScene()UScene

레이어의 Scene을 반환하는 함수
등록된 도형이 실제로 추가되는 Scene이며, three.js 객체를 직접 다뤄야 할 때 사용합니다.

Returns:
Type Description
UScene 레이어 Scene

loadWork(savedData, callback)Promise.<Array.<*>>

레이어의 작업을 불러오는 함수
저장 항목마다 callback이 한 번씩 호출되며, 저장된 type에 맞는 Geometry를 생성해 레이어에 등록하는 일은 callback이 담당합니다. callback이 Promise를 반환하면 모두 완료될 때까지 대기합니다. 동일한 이름(param.name)의 도형이 이미 있으면 경고 후 해당 항목을 건너뛰며, 생성될 때마다 LOAD 이벤트가 발생합니다.

Name Type Description
savedData object

저장된 작업 데이터 (단일/배열 허용)

callback function

저장 항목을 받아 Geometry를 생성 후 등록하는 사용자 콜백 함수

Returns:
Type Description
Promise.<Array.<*>> 모든 콜백 처리가 완료되면 resolve되는 Promise

removeAllGeometries()

등록된 모든 3D Geometry 객체를 제거하는 함수
clear와 달리 지오메트리·재질 자원은 해제하지 않으므로, 같은 도형을 다시 addGeometry로 등록해 재사용할 수 있습니다.

removeGeometry(geom)

3D Geometry 객체 하나를 레이어에서 제거하는 함수
라벨·타일 색인·자동 높이 등록도 함께 정리됩니다. 전체 제거는 removeAllGeometries 또는 clear를 사용합니다.

Name Type Description
geom U3dGeometry

삭제할 Geometry 객체

saveWork()Object|undefined

레이어의 작업을 저장하는 함수
등록된 각 도형의 getParam 결과를 모아 {type, param} 목록으로 반환하므로, JSON으로 보관했다가 loadWork로 복원할 수 있습니다. getParam이 없는 도형은 제외되며, 저장할 도형이 없으면 undefined를 반환합니다. 호출 시 SAVE 이벤트가 발생합니다.

Returns:
Type Description
Object | undefined 도형 목록과 레이어 이름. 저장할 도형이 없으면 undefined
Example
{
    geometries : [{ type: 'U3dBox', param: {...} }],
    name : 'vector'
}

setAutoHeight(value)

자동 높이 활성화 여부를 설정하는 함수
활성화하면 이미 등록된 도형까지 지형 표고에 맞춰 올라가고, 이후 지형 타일이 로드될 때마다 높이가 갱신됩니다. 비활성화하면 도형의 원래 z값으로 되돌아갑니다. 지형 위로 띄울 높이는 생성자 옵션 defaultZoffset(미터)으로 지정합니다.

Name Type Description
value boolean

자동 높이 활성화 여부

setDynamicUpdate(val)

타일 단위 동적 갱신 사용 여부를 설정하는 함수
활성화하면 화면에 보이는 타일의 도형만 렌더링하므로 도형 수가 많을 때 부담이 줄어듭니다. 생성자 옵션 dynamicUpdate로도 동일하게 설정할 수 있습니다.

Name Type Description
val boolean

동적 갱신 사용 여부

setScaleRatio(val)

등록된 모든 3D Geometry 객체의 높이 축척을 일괄 설정하는 함수
도형의 원래 높이를 val로 나눈 위치에 배치하므로 값이 작을수록 높이가 과장됩니다. (지하 단면·단층 강조 등)

Name Type Description
val number

축척 비율 (1이면 원래 높이)

show(show)

벡터 레이어 가시화 설정 함수
레이어에 등록된 도형과 라벨이 함께 처리되며, 숨겨도 도형은 유지되므로 다시 show(true)로 복원할 수 있습니다.

Name Type Description
show boolean

가시화 여부 : true면 보이기 / false면 숨김

Type Definitions

U3dVectorLayerCOobject

~extends U3dLayer~U3dLayerCO U3dVectorLayer 생성자 옵션

Properties:
Name Type Argument Default Description
uselight boolean <optional>
false

조명 영향 사용 여부

autoHeight boolean <optional>
false

지형 표고에 맞춘 높이 자동 보정 사용 여부

defaultZoffset number <optional>
0

자동 높이 적용 시 지형 표고에 더할 높이 (m)

dynamicUpdate boolean <optional>
false

타일 단위 동적 갱신 사용 여부 (도형이 많을 때 사용)

renderOffset number <optional>
0

렌더 순서 보정값 (z-fighting 조정용)

scaleRatio number <optional>
1

높이 축척 비율 (값이 작을수록 높이가 과장됨)

U3dVectorLayerEMIobject

~extends U3dLayer~U3dLayerEMI
U3dVectorLayer 이벤트 인터페이스

Properties:
Name Type Description
SAVE string

saveWork로 도형을 저장할 때 발생하는 이벤트

LOAD string

loadWork로 도형을 하나 불러올 때마다 발생하는 이벤트