new U3dModelShapeLayer(opt)
| Name | Type | Default | Description |
|---|---|---|---|
opt |
U3dModelShapeLayerCO | {} |
optional
레이어 이름, 좌표계, 표시 레벨, 높이·라벨 필드, 스타일과 텍스처 옵션 |
- Tutorials:
Example
const shpModelOpt = JSON.parse(option);
const layer = new Union3D.model.U3dModelShapeLayer(shpModelOpt);
app.addLayer(layer);
app.showLayer(layer.getName(), true);
layer.addFeatureCollection(shpModelOpt.featureCollection);
Methods
-
addFeature(feature)Promise.<U3dModelShapeMesh>|undefined
-
shp 모델 피처(Feature) 하나를 건물 Mesh로 만들어 레이어에 추가하는 메서드입니다.
지원하지 않는 도형이거나 좌표가 없으면 Mesh를 만들지 않고undefined를 반환합니다.Name Type Description featureU3dModelShapeFeature shp 모델 피처(Feature)
Returns:
Type Description Promise.<U3dModelShapeMesh> | undefined 건물 Mesh 생성이 끝나면 그 Mesh로 완료되고, 생성 중 예외가 나면 거부되는 Promise. 도형을 지원하지 않거나 좌표가 잘못되면 undefined -
addFeatureCollection(featureCollection)Promise.<(Array.<U3dModelShapeMesh>|undefined)>|undefined
-
shp 모델 피처 정보 묶음(FeatureCollection)을 추가하고 각 피처를 건물 Mesh로 생성하는 메서드입니다.
기존 건물은 유지하며 컬렉션과 피처에 Mesh와 연결되는uuid를 기록합니다.Name Type Description featureCollectionU3dModelShapeFeatureCollection 피처 정보 묶음(FeatureCollection)
Returns:
Type Description Promise.<(Array.<U3dModelShapeMesh>|undefined)> | undefined 처리할 Feature가 즉시 모두 끝나면 내부 전체 건물 목록으로 완료되는 Promise. 처리 중인 Feature가 남거나 예외가 나면 거부되며, 입력이 없으면 undefined -
addScene(mesh)
-
입력 받은 shp 모델 mesh를 scene에 추가하고 라벨 표시 상태이면 라벨을 만드는 메서드입니다.
Name Type Description meshU3dModelShapeMesh scene에 추가할 건물 Mesh. 행렬 자동 갱신을 끄고 현재 행렬을 확정하며, 라벨 표시 상태이면 라벨도 생성함
-
animateInterval(interval, x, y, z)Promise.<void>|undefined
-
층별 이동 간격을 50ms마다 조금씩 늘려 사용자 그룹을 애니메이션으로 펼칩니다. 먼저
setGroupOriginPosition()으로 기준 위치를 저장해야 합니다.Name Type Default Description intervalnumber 양수인 애니메이션 길이 계수. 반올림한
interval * 10단계 동안 50ms마다 이동함xnumber 0 optional 마지막 단계의 한 층당 x축 이동 간격(월드 단위)
ynumber 0 optional 마지막 단계의 한 층당 y축 이동 간격(월드 단위)
znumber 0 optional 마지막 단계의 한 층당 z축 이동 간격(월드 단위)
Returns:
Type Description Promise.<void> | undefined 이동이 끝나면 완료되는 Promise. 진행 중 다시 호출하면 이전 Promise는 거부됨. 유효한 양수 interval이 아니면undefined -
changeTexture(url, index)Promise.<(void|undefined)>
-
지정한 인덱스의 텍스처 URL과 로드 캐시를 교체합니다. 기존 Mesh 재질에 반영하려면 완료 후
updateStyle()을 호출해야 합니다.Name Type Description urlstring 새 텍스처 url
indexnumber 생성자의
textureurl또는textureUrl이 배열일 때 교체할 0 이상의 인덱스Returns:
Type Description Promise.<(void|undefined)> 텍스처 로드와 교체가 끝나면 완료되는 Promise. url이 없으면 undefined로 완료 -
clearSelectFloor(mesh)
-
선택한 층의 강조 표시와 클리핑을 해제하는 메서드입니다.
Name Type Description meshMesh optional 선택을 해제할 건물 Mesh. 생략하면 레이어의 모든 층 선택을 해제하고 렌더러의 로컬 클리핑을 끔
-
createLabel(mesh, opt)Promise.<void>
-
건물 Mesh의 label(POI)을 생성해
userData.label에 연결합니다. scene에는 추가하지 않으므로 표시하려면addScene()또는showLabel(true)를 사용합니다.Name Type Description meshU3dModelShapeMesh 라벨을 연결할 건물 Mesh
optU3dModelShapeLabelOptions label 생성 옵션
Returns:
Type Description Promise.<void> 라벨을 만들면 완료되고 mesh가 없거나 라벨을 만들지 못하면 거부되는 Promise -
createModel(tile)Promise.<boolean>|undefined
-
타일을 입력 받아 해당 타일에 걸친 건물을 작업 버퍼에 등록하는 함수
Name Type Description tileU3dQuadTile 레이어 레벨과 가시성 조건을 검사하고 건물을 작업 버퍼에 넣을 3D 지도 타일
Returns:
Type Description Promise.<boolean> | undefined 타일 상태 갱신이 끝나면 true로 완료되는 Promise. 타일이 없거나 표시 조건에 맞지 않으면undefined -
dispose()Promise.<boolean>
-
텍스처, 건물 Mesh, 라벨, 타일 색인과 층 분리 그룹을 해제한 뒤 부모 레이어를 정리하는 함수
Returns:
Type Description Promise.<boolean> 부모 레이어 정리가 끝나면 true로 완료되는 Promise -
disposeTile(tile)
-
타일을 입력 받아 그 타일에서만 보이던 건물을 scene에서 제거하는 함수
Name Type Description tileU3dQuadTile 이 타일에만 연결되어 scene에서 제거할 건물을 찾는 3D 지도 타일
-
getBoundingBox()Box3|undefined
-
shp 모델 레이어의 바운딩 영역(BoundingBox)을 반환하는 함수
Returns:
Type Description Box3 | undefined 마지막 addFeatureCollection()뒤 계산한 내부 월드 좌표 바운딩 박스. 직접 변경하면 레이어 상태에도 반영되며, 계산된 적이 없으면undefined -
getDrawnModel()Array.<Mesh>
-
현재 레이어 scene의 직계 자식인 Mesh 목록을 반환합니다. 가시성이나 화면 절두체 포함 여부는 검사하지 않습니다.
Returns:
Type Description Array.<Mesh> 새 배열에 담은 scene 내부 Mesh 참조. Mesh는 레이어에서 제거될 때 해제됨 -
getFeatureCollection()Array.<U3dModelShapeFeatureCollection>
-
레이어에 등록된 피처 정보 묶음(FeatureCollection) 목록을 등록 순서로 반환하는 메서드입니다.
Returns:
Type Description Array.<U3dModelShapeFeatureCollection> 내부 목록 자체. 배열이나 항목을 변경하면 레이어 상태에도 반영됨 -
getFloor(model, vertices)number|'roof'|undefined
-
레이어에 등록된 건물의 월드 좌표 정점이 속한 층을 찾습니다. 배열을 주면 가장 낮은 정점의 층을 사용합니다.
Name Type Description modelMesh 대상 건물 모델
verticesWorldPositionVector3 | Array.<WorldPositionVector3> 층 정보를 조회할 월드 좌표 정점 또는 정점 배열
Returns:
Type Description number | 'roof' | undefined 1부터 시작하는 층 번호. 윗면이면 'roof', 등록된 Mesh나 층 정보를 찾지 못하면undefined -
getParam()U3dModelShapeLayerParam
-
레이어의 저장용 설정을 반환합니다. FeatureCollection과 레이어의 높이·스타일 콜백 필드는 포함하지 않지만, 공유
style안의multiSideFunction은 남을 수 있습니다.Returns:
Type Description U3dModelShapeLayerParam 새 설정 객체. style과textureUrl값은 내부 객체·배열을 공유함 -
getSourceCRS()string
-
원본 데이터 좌표계로 보관 중인 EPSG 식별자를 반환합니다. 현재 Feature 좌표 변환에는 이 값이 사용되지 않습니다.
Returns:
Type Description string EPSG:5179같은 원본 데이터 좌표계 식별자 -
getStyle()U3dModelShapeStyle
-
shp 모델 레이어의 공통 스타일 객체를 반환하는 함수. 복사본이 아니라 내부 객체를 그대로 반환합니다.
Returns:
Type Description U3dModelShapeStyle 공통 스타일 객체 -
getWorkingLevel3()number
-
아직 처리 중인 피처 수와 작업 버퍼에 남은 타일 수의 합을 반환하는 함수
Returns:
Type Description number 남은 작업 수 -
moveUserGroupPosition(x, y, z)
-
모든 층 그룹을 저장된 원래 위치에서 층 순서별 간격만큼 이동합니다. 먼저
setGroupOriginPosition()으로 기준 위치를 저장해야 합니다.Name Type Default Description xnumber 0 optional 한 층당 x축 이동 간격(월드 단위)
ynumber 0 optional 한 층당 y축 이동 간격(월드 단위)
znumber 0 optional 한 층당 z축 이동 간격(월드 단위)
-
removeLabelToBoundingBox()
-
setStyle({label})로 만든 레이어 공통 라벨을 scene에서 제거하고 참조를 비웁니다. 건물별 라벨에는 영향을 주지 않습니다. -
removeModel(feature)
-
피처 또는 같은
uuid를 가진 Mesh에 해당하는 건물을 제거합니다.
원본과 층 분리 복제 Mesh의 라벨·지오메트리·재질을 해제하고 타일 색인과 속성 목록에서도 제거하므로, 이후 기존 Mesh 참조를 사용하면 안 됩니다.Name Type Description featureU3dModelShapeFeature | Mesh 제거할 건물의 피처 또는 Mesh
-
removeModelAsFeatureCollection(featureCollection)
-
컬렉션에 속한 모든 건물을 제거하고 컬렉션을 레이어 목록에서 빼는 메서드입니다.
Name Type Description featureCollectionU3dModelShapeFeatureCollection 제거할 피처 정보 묶음
-
removeScene(mesh)
-
입력 받은 shp 모델 mesh를 scene에서 제거하고 라벨을 해제하는 메서드입니다.
Name Type Description meshU3dModelShapeMesh scene에서 제거할 건물 Mesh. Mesh 자체와 지오메트리·재질은 보존됨
-
searchFeatureAsMesh(mesh)Object
-
건물 Mesh에 연결된 원본 피처와 피처 정보 묶음을 찾는 메서드입니다.
Name Type Description meshMesh 조회할 건물 Mesh
Returns:
Type Description Object 내부 원본 데이터 참조를 담은 새 결과 객체. 찾지 못한 항목은 undefined -
searchModelAsFeature(feature)U3dModelShapeMesh|undefined
-
단일 피처에 해당하는 건물 Mesh를 찾는 메서드입니다.
Name Type Description featureU3dModelShapeFeature 조회할 피처
Returns:
Type Description U3dModelShapeMesh | undefined 내부 건물 Mesh 참조. 없으면 undefined이며, Mesh는 레이어에서 제거될 때 해제됨 -
searchModelAsFeatureCollection(featureCollection)Array.<U3dModelShapeMesh>
-
컬렉션에 속한 모든 건물 Mesh를 찾는 메서드입니다.
Name Type Description featureCollectionU3dModelShapeFeatureCollection 조회할 피처 정보 묶음
Returns:
Type Description Array.<U3dModelShapeMesh> 새 배열에 담은 내부 건물 Mesh 참조. 없으면 빈 배열이며, Mesh는 레이어에서 제거될 때 해제됨 -
setFloorFromGroupName(floorCount, height, commonName, propertyName)Array.<UGroup>|undefined
-
속성값과 공통 이름으로 건물을 층 그룹으로 나누고, 각 그룹의 복제 Mesh를 층 높이만큼 띄운 사용자 그룹 목록을 만듭니다.
첫 번째 속성 그룹은 원본 Mesh로 남겨 두고 나머지만 복제합니다. 먼저setGroupOriginPosition()으로 기준 위치를 저장해야 합니다.Name Type Description floorCountnumber 필수 실행 조건으로 쓰는 층 개수. 값 자체는 그룹 수 계산에 사용하지 않음
heightnumber | undefined 층 사이 간격(월드 단위). 기본 간격
0을 쓰려면undefined를 전달commonNamestring 그룹 이름 뒤에 붙일 공통 이름
propertyNamestring 층 구분 값을 읽을 Feature 속성 이름
Returns:
Type Description Array.<UGroup> | undefined 내부에 보관하는 복제 층 그룹 목록. 입력이 없거나 건물이 없으면 undefined -
setGroupOriginPosition()
-
각 원본 건물과 자식 Mesh의 현재 위치를 층 분리 이동의 기준 위치로 저장합니다. 층 그룹을 이동하기 전에 호출해야 합니다.
-
setSelectFloor(model, target, option)
-
층 정보가 생성된 건물의 한 층을 강조합니다. 불투명도
0이면 렌더러의 로컬 클리핑을 켜고 선택 층 밖을 잘라냅니다.Name Type Default Description modelMesh 대상 건물 모델
targetArray.<WorldPositionVector3> | WorldPositionVector3 | number 비어 있지 않은 선택 지점의 월드 좌표(EPSG:3857) 배열, 단일 좌표 또는 1부터 시작하는 층 번호
optionPartial.<{color: ColorRepresentation, opacity: number}> {} optional 선택 스타일.
opacity는0부터1이며, 생략한 값은 기존 강조 Mesh의 값을 유지함. 최초 값은0x00ff00과0.7 -
setShpAllHeight(height, type)
-
모든 shp 모델의 z 위치를 지정한 높이로 맞추는 함수
Name Type Default Description heightnumber 맞출 높이(월드 단위)
type'center' | 'bottom' | 'top' 'bottom' optional 높이 기준.
center는 Mesh 중심,bottom은 바닥, 그 외 값은 윗면 -
setShpMeshHeight(mesh, height, type)
-
shp 모델 하나의 z 위치를 지정한 높이로 맞추는 함수
Name Type Default Description meshU3dModelShapeMesh 이동할 건물 Mesh
heightnumber 맞출 높이(월드 단위)
type'center' | 'bottom' | 'top' 'bottom' optional 높이 기준.
center는 Mesh 중심,bottom은 바닥, 그 외 값은 윗면 -
setShpPositionFromGeographic(geo)
-
입력한 위경도(EPSG:4326)가 현재 레이어 중심이 되도록 모든 건물을 월드 좌표(EPSG:3857)에서 같은 거리만큼 이동합니다.
Name Type Description geoGeoPosition | Partial.<{z: number}> x=경도,y=위도인 좌표.z는 월드 높이이며, 생략하면 현재 레이어 중심 높이를 유지 -
setSideStyle(mesh, opt)
-
건물 Mesh의 옆면 재질을 새로 만들어 재질 배열의 두 번째 항목에 넣고 기존 옆면 재질을 해제합니다.
Name Type Default Description meshU3dModelShapeMesh 윗면·옆면 재질 그룹을 가진 건물 Mesh
optU3dModelShapeMaterialOptions {} optional 옆면 재질과 Mesh 배율을 정하는 옵션
-
setSourceCRS(sourceCRS)
-
원본 데이터 좌표계 식별자를 설정합니다. 현재 구현에서는 메타데이터만 바꾸며 기존·후속 Feature 좌표를 변환하지 않습니다.
Name Type Description sourceCRSstring EPSG:5179같은 원본 데이터 좌표계 식별자 -
setStyle(style)
-
공통 색상과 불투명도를 바꾸고 기존 건물 재질에 적용합니다.
label을 주면 레이어 전체 바운딩 박스 중심의 공통 라벨도 갱신합니다.Name Type Default Description stylePartial.<{color: ColorRepresentation, opacity: number, label: string}> {} optional 바꿀 값.
opacity는0부터1이며, 생략한 속성은 현재 값을 유지 -
setTexture(url)Promise.<(Array.<void>|undefined)>
-
텍스처 url를 입력받아 미리 불러오는 함수
Name Type Description urlstring | Array.<string> 텍스처 url 또는 url 배열
Returns:
Type Description Promise.<(Array.<void>|undefined)> 모든 텍스처 로드가 끝나면 완료되는 Promise. url이 없으면 undefined로 완료 -
setTopStyle(mesh, opt)
-
건물 Mesh의 윗면 재질을 새로 만들어 재질 배열의 첫 번째 항목에 넣고 기존 윗면 재질을 해제합니다.
Name Type Default Description meshU3dModelShapeMesh 윗면·옆면 재질 그룹을 가진 건물 Mesh
optU3dModelShapeMaterialOptions {} optional 윗면 재질과 Mesh 배율을 정하는 옵션
-
setUserGroupPosition(group, position, floorCount, order)
-
층 그룹에 속한 건물을 저장된 원래 위치에서 그룹 순서에 따라 지정한 간격만큼 이동합니다. 먼저
setGroupOriginPosition()으로 기준 위치를 저장해야 합니다.Name Type Default Description groupUGroup setFloorFromGroupName()으로 만든 층 그룹positionVector3 | Vector3Like optional 기준 위치에 더할 한 층당 이동 간격(월드 단위). 생략하면
(0, 0, 0)floorCountnumber 1 optional 전체 층 그룹 수
ordernumber 0 optional 이 그룹의 순서. 클수록 적게 이동
-
setUvMode(geometry, mode)
-
백업해 둔 원본 uv와 변환 uv 중 하나를 지오메트리에 적용합니다. 같은 모드가 이미 적용되어 있으면 아무 일도 하지 않습니다.
Name Type Description geometryBufferGeometry | undefined 텍스처 좌표를 바꿀 지오메트리. 필요한 백업 배열이 없으면 변경하지 않음
mode'origin' | 'converted' origin은 로드 당시 좌표,converted는 윗면·옆면용으로 다시 계산한 좌표 -
show(show)
-
shp 모델 레이어 가시화 설정 함수. 숨길 때는 라벨도 함께 숨깁니다.
Name Type Description showboolean 가시화 설정값
-
showLabel(show)
-
모든 건물의 라벨을 만들어 표시하거나 제거하는 함수. 레이어 공통 라벨도 함께 표시·숨김 처리합니다.
Name Type Description showboolean true이면 라벨을 생성하거나 표시하고false이면 제거 -
textureInit()Promise.<(Array.<void>|undefined)>|void
-
생성자에 전달된 텍스처 URL을 미리 불러옵니다.
Returns:
Type Description Promise.<(Array.<void>|undefined)> | void 모든 텍스처 로드가 끝나면 완료되는 Promise. URL이 없으면 반환값 없음 -
traverseAllFloor(mesh, callback)
-
건물 mesh의 모든 층과 윗면을 순회하면서 면 정보를 콜백으로 전달하는 메서드입니다.
지오메트리나 층 정보가 없으면 다섯 인자를 모두undefined로 전달해 콜백을 한 번 호출합니다.Name Type Description meshU3dModelShapeMesh multiSideFunction처리로 층 정보가 생성된 건물 MeshcallbackU3dModelShapeFloorCallback 정상일 때 Mesh, 월드 좌표 정점, 월드 단위 너비, 층 번호와 로컬 법선을 받는 함수
-
traverseFloor(mesh, floor, callback)
-
건물 mesh에서 지정한 층의 면만 순회하면서 면 정보를 콜백으로 전달하는 메서드입니다.
지오메트리, 층 정보 또는 해당 층이 없으면 다섯 인자를 모두undefined로 전달해 콜백을 한 번 호출하고 끝냅니다.Name Type Description meshU3dModelShapeMesh multiSideFunction처리로 층 정보가 생성된 건물 Meshfloornumber 순회할 1 이상의 층 번호
callbackU3dModelShapeFloorCallback 정상일 때 Mesh, 월드 좌표 정점, 월드 단위 너비, 층 번호와 로컬 법선을 받는 함수
-
update(drawArg, curTime)
-
작업 버퍼에 쌓인 타일의 건물을 프레임당 최대 처리 수만큼 scene에 추가하는 함수
Name Type Description drawArgUDrawArg scene과 프레임당 처리 한도를 제공하는 현재 렌더링 인자
curTimenumber optional 최근 갱신 시간. 현재 구현은 사용하지 않음
-
updateHeight(tile, drawArg, force)
-
타일의 지형 높이에 맞춰 해당 타일에 캐시된 건물의 z 위치를 갱신하는 함수
Name Type Description tileU3dQuadTile 건물 캐시와 지형 높이를 제공하는 갱신 대상 타일
drawArgUDrawArg optional 좌표·렌더링 상태를 제공하는 인자. 생략하면 높이를 갱신하지 않음
forceboolean optional true이면 같은 레벨에서 이미 맞춘 건물도 다시 계산 -
updateHeightFromMesh(tile, drawArg, force)
-
타일 캐시에 들어 있는 건물마다 바운딩 박스 중심의 지형 높이를 구해 z 위치를 맞추는 함수
Name Type Description tileU3dQuadTile 캐시된 건물과 지형 높이를 제공하는 타일
drawArgUDrawArg optional 좌표·렌더링 상태를 제공하는 인자. 생략하면 높이를 갱신하지 않음
forceboolean optional true이면 같은 레벨에서 이미 맞춘 건물도 다시 계산 -
updateLabel(mesh, position)
-
건물 라벨의 위치를 옮기는 함수. 라벨이 없으면 아무 일도 하지 않습니다.
Name Type Description meshU3dModelShapeMesh 라벨을 가진 건물 Mesh
positionVector3 optional 새 라벨 위치(월드 좌표). 생략하면 Mesh 위치
-
updateStyle()
-
styleFunction을 다시 실행하고 모든 건물 Mesh의 재질을 갱신합니다. 교체된 기존 재질과 텍스처 자원은 해제됩니다.
Type Definitions
-
U3dModelShapeActiveIntervalobject
-
animateInterval()이 진행 중인 층 분리 애니메이션을 보관하는 상태입니다.Properties:
Name Type Description timerReturnType.<Class.<setInterval>> 진행 중인 타이머
promiseDeferredObject.<void> 애니메이션 완료를 알리는 대기 객체
-
U3dModelShapeFaceStyleobject
-
multiSideFunction이 한 면에 대해 반환하는 재질 선택 결과입니다.Properties:
Name Type Argument Description materialIndexArray.<number> textureurl배열 범위 안의 재질 인덱스 1~2개. 두 개면 두 번째 텍스처를 첫 번째 위에 합성함imageScalenumber <optional>
두 텍스처를 합성할 때 두 번째 이미지의 상대 크기. 기본값
1imageSizenumber <optional>
repeat이1보다 클 때 필요한 캔버스 한 변의 양수 픽셀 크기repeatnumber <optional>
텍스처를 가로·세로로 반복할 횟수.
1초과일 때만 적용 -
U3dModelShapeFaceStyleResultundefined U3dModelShapeLayer.types~U3dModelShapeFaceStyle
-
multiSideFunction의 반환값입니다.undefined이면 해당 면을 재질 그룹에 넣지 않아 그리지 않습니다. -
U3dModelShapeFeatureobject
-
Shape Feature
Feature 구조를 기반으로 하는 단일 도형 요소입니다.uuid는 건물 생성 시 레이어가 Mesh의uuid로 채웁니다.Properties:
Name Type Argument Description uuidstring <optional>
연결된 건물 Mesh의 uuid. 건물 생성 전에는 없음
idstring <optional>
Feature를 식별하거나 라벨·Mesh 키를 만드는 데 쓰는 문자열 ID
propertiesKeyValue <optional>
높이·라벨·층과 사용자 속성을 읽는 객체. 생략하면 건물 생성 시 빈 객체로 채움
geometryU3dModelShapeLayer.types~U3dModelShapeGeoJSONGeometry 피처 geometry 정보
-
U3dModelShapeFeatureCollectionobject
-
Shape FeatureCollection
여러 개의 Feature를 하나로 묶은 컬렉션입니다.uuid는addFeatureCollection()이 채웁니다.Properties:
Name Type Argument Description typestring <optional>
GeoJSON 종류. 보통
FeatureCollectionuuidstring <optional>
레이어가 등록 시 부여하는 컬렉션 식별자
featuresArray.<U3dModelShapeLayer.types~U3dModelShapeFeature> 컬렉션에 속한 Feature 목록
-
U3dModelShapeFloorCallback()
-
층 순회 콜백입니다. 인접한 두 삼각형을 한 면으로 묶어 호출하며, 층 정보가 없으면 모든 인수가
undefined인 채 한 번 호출됩니다. -
U3dModelShapeFloorFaceobject
-
건물 Mesh의 한 층을 구성하는 삼각형 면 정보입니다. 정점과 법선은 Mesh 중심을 기준으로 한 로컬 좌표입니다.
-
U3dModelShapeGeoJSONGeometryobject
-
addFeature()가 처리하는 GeoJSON 도형입니다. 좌표는[경도, 위도]순서의EPSG:4326이며 현재 구현은 첫 외곽선만 건물 윤곽으로 사용합니다.Properties:
Name Type Description type'Polygon' | 'MultiPolygon' | 'LineString' 현재 지원하는 GeoJSON 도형 종류
coordinatesDouble_Array.<number> | Triple_Array.<number> | Array.<Triple_Array.<number>> 도형 종류에 맞게 중첩된
[경도, 위도]좌표 배열. 빈 배열은 처리하지 않음 -
U3dModelShapeGeometryobject
-
평면 윤곽을 높이 방향으로 늘려 만든 건물 지오메트리가 층 선택을 위해 보관하는 층별 면 목록입니다.
-
U3dModelShapeHighlightMeshobject
-
선택한 층을 덮는 강조 Mesh입니다. Mesh는 화면에 그릴 지오메트리와 재질을 묶은 객체이며, 이 타입은 한 층 높이로 압출한 지오메트리를 사용합니다.
Properties:
Name Type Description materialMeshBasicMaterial 강조 색상과 불투명도를 가진 재질
geometryUExtrudeGeometry 한 층 높이의 압출 지오메트리
setManualUpdatefunction 행렬 자동 갱신을 끄고 현재 행렬을 확정하는 함수
-
U3dModelShapeLabelOptionsobject
-
createLabel()에 전달하는 라벨 생성 옵션입니다.label또는image중 하나는 있어야 합니다.Properties:
Name Type Argument Default Description namestring <optional>
라벨 POI 이름
labelstring <optional>
라벨 문자열
imagestring <optional>
이미지 데이터 URL
positionVector3 <optional>
라벨 위치(월드 좌표). 생략하면 건물 중심 위
colorColorRepresentation <optional>
라벨 색상
sizenumber <optional>
화면에 그릴 텍스트 크기
heightOffsetnumber <optional>
0 POI 캔버스 안에서 라벨을 세로로 보정하는 픽셀 값
imageSizenumber <optional>
20 화면에 그릴 이미지의 픽셀 크기
-
U3dModelShapeLayerCOobject
-
~extends U3dModelLayer~U3dModelLayerCO
U3dModelShapeLayer 생성자 옵션Properties:
Name Type Argument Default Description namestring <optional>
레이어 이름
drawlineboolean <optional>
true SHP 모델 외관선 생성 여부
crsstring <optional>
'EPSG:3857' 레이어 좌표계
sourceCRSstring <optional>
'EPSG:5179' SHP 모델 원본 소스의 좌표계
minlevelnumber <optional>
17 레이어를 출력할 최소 타일 레벨
opacitynumber <optional>
1 0부터1까지의 레이어 불투명도transparentboolean <optional>
false 호환용 부모 옵션. 현재 구현은 전달값 대신
opacity < 1로 결정함urlstring <optional>
SHP 모델 Data source URL
featureCollectionU3dModelShapeLayer.types~U3dModelShapeFeatureCollection <optional>
설정값으로 보관할 SHP 모델 featureCollection. 건물 Mesh는 만들지 않음
labelInfoArray.<KeyValue> <optional>
라벨 정보 목록. 현재 구현은 보관만 함
styleU3dModelShapeLayer.types~U3dModelShapeStyle <optional>
모든 건물에 적용할 공통 스타일
setTopSideStyleboolean <optional>
false SHP 모델 출력 시 Mesh의 윗면과 옆면의 스타일을 별도로 지정할지 여부
showLabelboolean <optional>
false SHP 모델에 POI Label을 출력할지 여부
fieldheightstring <optional>
건물 전체 높이를 읽을 Feature 속성 이름
fieldlandheightstring <optional>
지면(지형)에서 띄울 높이를 읽을 Feature 속성 이름
fieldlabeltextstring <optional>
라벨 문자열을 읽을 Feature 속성 이름
fieldFloorstring <optional>
층수를 읽을 Feature 속성 이름
floorHeightnumber <optional>
4 공통 층 높이(m). 층수로 전체 높이를 계산하고 층 선택 경계를 나눌 때 사용
fieldFloorHeightstring <optional>
건물마다 층 높이를 읽을 Feature 속성 이름. 지정하면
floorHeight보다 우선heightFunctionfunction <optional>
Feature별 건물 전체 높이(m)를 반환하는 함수
landHeightFunctionfunction <optional>
Feature별 지면 기준 높이(m)를 반환하는 함수
depthOffsetnumber <optional>
1 윗면·옆면이 겹쳐 깜빡이는 Z-fighting을 줄이는 깊이 보정 계수
styleFunctionU3dModelShapeLayer.types~U3dModelShapeStyleFunction <optional>
Feature별 표시 스타일을 반환하는 함수
usetextureboolean <optional>
false SHP 모델에 텍스처를 지정할지 여부
textureurlstring | Array.<string> <optional>
미리 불러올 텍스처 URL 또는 URL 배열. 두 값을 모두 생략하면 빈 배열
textureUrlstring | Array.<string> <optional>
textureurl의 별칭proxyurlstring <optional>
'' 텍스처 요청 앞에 붙일 프록시 URL. 현재 생성 경로에는 프록시 활성 옵션이 없어 빈 문자열로 초기화됨
-
U3dModelShapeLayerParamobject
-
getParam()이 반환하는 SHP 모델 레이어의 저장 가능한 설정입니다. FeatureCollection과 레이어의 높이·스타일 콜백 필드는 제외되지만, 공유style안의multiSideFunction은 남을 수 있습니다.Properties:
Name Type Description namestring 레이어 이름
minlevelnumber 카메라 거리별 상세도를 나누는 타일 레벨 중 건물을 표시하기 시작하는 값
maxlevelnumber 건물을 표시하는 마지막 타일 레벨. 현재 구현은
minlevel과 같은 값transparentboolean 투명도 적용 여부.
true면 불투명도가1미만urlstring | undefined 생성자에 전달한 데이터 URL
sourceCRSstring 원본 데이터 좌표계로 보관한 EPSG 식별자
styleU3dModelShapeLayer.types~U3dModelShapeStyle 모든 건물에 적용하는 내부 공통 스타일 객체의 공유 참조
fieldHeightstring | undefined 건물 전체 높이를 읽는 Feature 속성 이름
fieldLandHeightstring | undefined 지면 기준 높이를 읽는 Feature 속성 이름
fieldLabelTextstring | undefined 라벨 문자열을 읽는 Feature 속성 이름
fieldFloorstring | undefined 층수를 읽는 Feature 속성 이름
floorHeightnumber 공통 층 높이(m)
useTextureboolean 생성 시 텍스처를 적용하는지 여부
textureUrlstring | Array.<string> 내부에서 공유하는 텍스처 URL 또는 URL 배열. 배열을 변경하면 이후 재질 생성에도 반영됨
proxyurlstring 텍스처 요청 앞에 붙이는 프록시 URL
useproxyboolean | undefined 프록시 사용 여부. 현재 구현은 설정 경로가 없어 항상
undefined -
U3dModelShapeLayerRuntimeFieldsPartial.<{_activeInterval: U3dModelShapeLayer.types~U3dModelShapeActiveInterval, _allModelIsAddScene: boolean, _useproxy: boolean}>
-
생성자 밖에서 필요할 때만 기록되는 레이어 런타임 필드입니다. 값이 없을 수 있으므로 모두 선택 속성입니다.
-
U3dModelShapeMaterialOptionsobject
-
setSideStyle()과setTopStyle()에 전달하는 재질 옵션입니다.Properties:
Name Type Argument Description colorColorRepresentation <optional>
재질 색상. 기본값
0xfaebd7emissiveColorRepresentation <optional>
발광 색상. 기본값
0x000000metalnessnumber <optional>
0부터1까지의 금속성. 기본값0roughnessnumber <optional>
0부터1까지의 표면 거칠기. 기본값0.8opacitynumber <optional>
0부터1까지의 불투명도. 옆면 기본값1, 윗면 기본값은 레이어 불투명도transparentboolean <optional>
투명 처리 여부. 생략하면
opacity < 1sideSide <optional>
카메라를 향한 앞면·뒷면 중 렌더링할 방향. 기본값
DoubleSidesetGrayscaleboolean <optional>
true이면 색상을 회색조로 바꾸고 발광색으로도 사용depthWriteboolean <optional>
다른 물체와의 앞뒤 판정에 쓰는 깊이 버퍼 기록 여부. 기본값
truepolygonOffsetnumber <optional>
겹친 면의 깜빡임을 줄이는 깊이 보정 계수.
0이 아니면polygonOffsetFactor로 사용scalenumber | Vector3Like <optional>
양수인 Mesh 크기 배율. 숫자면 세 축에 같은 값, 객체면 축별 값
-
U3dModelShapeMeshobject
-
레이어가 건물 Mesh에 추가로 기록하는 속성과 런타임 확장 메서드입니다.
Properties:
Name Type Description geometryU3dModelShapeLayer.types~U3dModelShapeGeometry 층 정보를 포함하는 압출 지오메트리
userDataU3dModelShapeLayer.types~U3dModelShapeMeshUserData 레이어가 기록하는 사용자 데이터
setManualUpdatefunction 행렬 자동 갱신을 끄고 현재 행렬을 확정하는 함수
-
U3dModelShapeMeshUserDataobject
-
건물 Mesh의
userData에 레이어가 기록하는 값입니다.Properties:
Name Type Argument Description labelU3dPOI <optional>
건물 라벨 POI. 라벨을 끄면 제거됨
landHeightnumber <optional>
월드 스케일로 변환한 지면 기준 높이
buildHeightnumber <optional>
월드 스케일로 변환한 건물 전체 높이
idstring <optional>
Feature
id또는 위치 기반 생성 키styleinfoObject <optional>
마지막으로 적용한 스타일의 표시 여부
originMeshIDstring <optional>
층 분리 복제 Mesh가 가리키는 원본 Mesh의
uuid -
U3dModelShapeModelIndexObject Record.<string, (boolean|U3dModelShapeLayer.types~U3dModelShapeMesh)>
-
타일 키별로 어떤 건물이 걸쳐 있는지와 건물별로 어떤 타일이 그려졌는지 기록하는 색인 항목입니다.
-
U3dModelShapeMultiSideFunction()
-
면마다 재질을 선택하는 사용자 함수입니다. Mesh, 월드 좌표 정점, 월드 단위 폭, 1부터 시작하는 층 번호와 Mesh 로컬 법선을 받습니다.
undefined를 반환하면 그 면을 그리지 않습니다. -
U3dModelShapeSelectedFloorobject
-
setSelectFloor()가 건물별로 보관하는 층 선택 상태입니다. 클리핑 평면은 카메라에 표시할 공간을 경계면 기준으로 잘라내는 렌더링 설정입니다.Properties:
Name Type Argument Description highLightU3dModelShapeLayer.types~U3dModelShapeHighlightMesh 선택한 층을 덮는 강조 Mesh
upPlanePlane <optional>
투명 선택 시 위쪽 클리핑 평면
downPlanePlane <optional>
투명 선택 시 아래쪽 클리핑 평면
-
U3dModelShapeStyleobject
-
건물 Mesh에 적용하는 표시 스타일입니다. 공통
style은 전체 형태를 사용하고styleFunction은 필요한 속성만 반환할 수 있습니다. 색상은 CSS 색상 문자열, 16진수 숫자 또는Color이고 불투명도는0(완전 투명)부터1(완전 불투명)입니다.Properties:
Name Type Argument Description colorColorRepresentation 건물 색상
opacitynumber 건물 불투명도
visibleboolean 건물 표시 여부.
false이면 Mesh를 만들되 화면에 그리지 않음sideSide <optional>
재질의 렌더링 면. 기본 스타일에서만 사용
labelstring <optional>
레이어 전체 바운딩 박스 중심에 표시할 공통 라벨.
setStyle()에서 사용imgvisibleboolean <optional>
true이면 레이어 옵션과 무관하게 텍스처 재질을 만들고,false이면 단색 재질을 만듦imgurlstring | Array.<string> <optional>
이 건물에만 사용할 텍스처 URL 또는 URL 배열. 생략하면 레이어의
textureurl을 사용multipleTextureboolean <optional>
true이면textureurl의 모든 텍스처를 재질 배열로 만들고multiSideFunction으로 면마다 재질을 고름multiSideFunctionU3dModelShapeLayer.types~U3dModelShapeMultiSideFunction <optional>
건물의 각 면에 사용할 재질 인덱스와 반복 설정을 반환하는 함수
-
U3dModelShapeStyleFunction()
-
Feature별 표시 스타일을 정하는 사용자 함수입니다.
-
U3dModelShapeStyleResultundefined Partial.<U3dModelShapeLayer.types~U3dModelShapeStyle>
-
styleFunction의 반환값입니다.undefined이면 공통style을 사용합니다.