new U3dGeometryFactory()
Examples
Box — 기본 단일위치 도형
const geom = GeOnDT.geom.U3dGeometryFactory.addJson(
{ type: 'Box', coord: { x: 126.9395, y: 37.52, z: 8 }, color: '#2ecc71', width: 20, height: 20, depth: 20 },
vectorLayer
);
Point — img 파라미터가 없으면 화면에 표시되지 않음
const geom = GeOnDT.geom.U3dGeometryFactory.addJson(
{ type: 'Point', coord: { x: 126.9395, y: 37.52, z: 8 }, color: '#e74c3c', size: 30, img: 'image/marker.png' },
vectorLayer
);
Line — 다중위치 도형은 coord가 배열이어야 함
const geom = GeOnDT.geom.U3dGeometryFactory.addJson(
{ type: 'Line', coord: [{ x: 126.939, y: 37.520, z: 8 }, { x: 126.940, y: 37.521, z: 8 }], color: '#2b448b' },
vectorLayer
);
Fault — app 필수, 사전에 지하모드 설정 필요
app.setUnderGroundMode(true);
app.setEnableOpacityImageLayers(true);
app.setOpacityImageLayers(0.5);
const geom = GeOnDT.geom.U3dGeometryFactory.addJson(
{ type: 'Fault', coord: [{ x: 126.939, y: 37.520, z: 50 }, { x: 126.940, y: 37.521, z: 50 }], width: 100, dip: 60, opacity: 0.7, app },
vectorLayer
);
Members
-
TYPESArray.<U3dGeometryFactory~GeomType>
-
이 팩토리가 만들 수 있는 도형 종류의 목록입니다.
add에 이 목록에 없는 종류를 넘기면 도형을 만들지 않고undefined를 돌려줍니다.
Methods
-
static add(type, coord, params, layer)U3dGeometry|Array.<U3dGeometry>|undefined
-
도형 타입에 따라 단일위치/다중위치 생성 방식을 자동으로 골라 도형을 만들고, 레이어가 주어지면 함께 추가합니다.
좌표를 하나만 주면 도형 하나를, 좌표 배열을 주면 여러 개를 만들어 배열로 반환합니다.단일위치 도형 (Point·Box·Cylinder·Circle·Sphere):
coord가{x,y,z}→ 1개 반환coord가[{x,y,z}, ...]→ 각 좌표마다 1개씩 배열 반환
다중위치 도형 (Line·Pipe·UserGeometry·Fault):
coord가[{x,y,z}, ...]→ 1개 반환coord가[[{x,y,z},...], ...]→ 각 배열마다 1개씩 배열 반환
Sphere는 분할 수를 넣지 않으면 가로·세로 24로 만듭니다.Fault는params.app에 앱 객체를 함께 넘겨야 합니다.Name Type Default Description typeU3dGeometryFactory~GeomType 만들 도형의 종류.
TYPES에 없는 값이면 경고만 남기고 아무것도 만들지 않습니다coordCoord | Array.<Coord> | Double_Array.<Coord> 도형을 놓을 위경도 좌표 (EPSG:4326). 도형 종류와 배열 깊이에 따라 만드는 개수가 달라집니다
paramsKeyValue {} optional 색상·크기 등 도형 생성자에 그대로 넘길 옵션. 받을 수 있는 항목은 도형 클래스마다 다릅니다
layerObject optional 만든 도형을 넣을 벡터 레이어. 넣지 않으면 레이어에 추가하지 않고 도형만 돌려줍니다
Returns:
Type Description U3dGeometry | Array.<U3dGeometry> | undefined 만든 도형, 좌표를 여러 벌 넘겼으면 도형 배열. 지원하지 않는 종류면 undefined -
static addJson(json, layer)U3dGeometry|Array.<U3dGeometry>|undefined
-
JSON 문자열 또는 객체로부터 도형을 생성합니다.
type·coord필드를 꺼내고 나머지 필드는 생성 파라미터로 사용해add()를 호출합니다.Name Type Description jsonstring | object type과coord를 담은 도형 정보. 문자열로 넘기면 JSON으로 읽으며, 형식이 잘못되면 예외가 납니다layerObject optional 만든 도형을 넣을 벡터 레이어. 넣지 않으면 레이어에 추가하지 않고 도형만 돌려줍니다
Returns:
Type Description U3dGeometry | Array.<U3dGeometry> | undefined 만든 도형, 좌표를 여러 벌 넘겼으면 도형 배열. 지원하지 않는 종류면 undefinedExample
// 객체로 전달 Factory.addJson({ type: 'Box', coord: {x:126.9, y:37.5, z:8}, color:'#ff0000', width:20 }, vectorLayer); // 문자열로 전달 Factory.addJson('{"type":"Box","coord":{"x":126.9,"y":37.5,"z":8},"width":20}', vectorLayer); // Fault는 app 필요 Factory.addJson({ type: 'Fault', coord: [{x:126.939, y:37.520, z:50}, {x:126.940, y:37.521, z:50}], width:100, app }, vectorLayer);
Type Definitions
-
CoordObject
-
도형을 놓을 위치 하나를 나타내는 위경도 좌표입니다. (EPSG:4326)
x는 경도,y는 위도,z는 높이(미터)입니다. 월드 좌표(EPSG:3857)가 아닙니다. -
GeomType'Point' 'Line' 'Cylinder' 'Box' 'Circle' 'Sphere' 'Pipe' 'UserGeometry' 'Fault' 'PolygonLoftGeometry'
-
팩토리가 만들 수 있는 도형의 종류입니다.
Point·Cylinder·Box·Circle·Sphere는 좌표 하나로 완성되는 단일위치 도형이고,Line·Pipe·UserGeometry·Fault·PolygonLoftGeometry는 좌표를 여러 개 이어 만드는 다중위치 도형입니다.