JSSolarManager
태양광 패널 배치 및 분석을 위한 JSSolarManager API 문서입니다.
태양광 패널 배치, 설정, 분석 등을 위한 주요 인터페이스를 제공하는 클래스입니다. 건물 또는 지형 기반의 설치를 모두 지원하며, 다양한 파라미터 설정 및 결과 조회가 가능합니다.
Methods
setActive(isActive) → void
태양광 모듈 편집을 활성화 또는 비활성화합니다.
- Parameters - isActive(- boolean): true 시 태양광 배치 활성화
 
Module.getSolar().setActive(true);setModuleAngle(useDefault, angle) → void
태양광 패널의 각도를 설정합니다.
- Parameters - useDefault(- boolean): 기본값 사용 여부
- angle(- number): 기울기 각도 (degrees)
 
Module.getSolar().setModuleAngle(true, 30.0);setModuleImage(imageData, width, height) → boolean
사용자 정의 이미지를 태양광 패널 텍스처로 설정합니다.
imageData
array
이미지 픽셀 데이터 (RGBA).
width
number
이미지의 너비 (pixels).
height
number
이미지의 높이 (pixels).
- Return - true: 설정 성공. 
- false: 설정 실패. 
- 실패 조건 - imageData가 null이거나 비어 있는 경우 
- width 또는 height가 0 이하인 경우 
 
 
let image = new Uint8Array([
  255, 0, 0, 255,     // 빨강
  0, 255, 0, 255,     // 초록
  0, 0, 255, 255,     // 파랑
  255, 255, 255, 255  // 흰색
]);
let result = Module.getSolar().setModuleImage(image, 2, 2);setProviderMode(isProvider) → void
태양광 Provider Mode를 설정합니다.
isProvider
boolean
true: 공급자 모드, false: 소비자 모드
- Return - 없음 
 
Module.getSolar().setProviderMode(true);setModuleMargin(include, exclude, moduleSide, moduleTopDown, arraySide, arrayTopDown) → void
태양광 모듈 및 어레이 배치 간격을 설정합니다. 음수 값은 자동으로 0으로 처리됩니다.
include
number
전체 배치 경계 포함 여백 (meters)
exclude
number
전체 배치 경계 제외 여백 (meters)
moduleSide
number
모듈 간 좌우 간격 (meters)
moduleTopDown
number
모듈 간 상하 간격 (meters)
arraySide
number
어레이 간 좌우 간격 (meters)
arrayTopDown
number
어레이 간 상하 간격 (meters)
- Return - 없음 
 
Module.getSolar().setModuleMargin(1.0, 0.5, 0.1, 0.1, 0.2, 0.2);setDownScale(enable, length) → void
태양광 모듈 배치 시 일정 길이 간격으로 스케일 조정 기능을 설정합니다.
enable
boolean
true 시 다운스케일 기능 활성화
length
number
스케일 조정 기준 길이 (양수, meters 단위)
- Return - 없음 
 
Module.getSolar().setDownScale(true, 3.0);getModuleCount() → number
현재 활성화된 객체 내에 배치된 태양광 모듈의 총 개수를 반환합니다.
- Return - number: 배치된 모듈 수
- 0: 유효한 객체가 없거나 모듈이 배치되지 않은 경우
 
let count = Module.getSolar().getModuleCount();setSouthDeploy(enable) → void
남향 일괄 배치를 설정합니다. 해당 설정이 활성화되면 하나의 섹션으로 모든 모듈이 남향으로 배치됩니다.
- Parameters - enable(- boolean): true 시 남향 일괄 배치 적용
 
Module.getSolar().setSouthDeploy(true);clearPreview() → void
모든 태양광 패널의 미리보기 상태를 초기화합니다.
m_bPreview값이 false로 설정되어, 화면에서 미리보기 모듈이 제거됩니다.
Module.getSolar().clearPreview();selectRoofByObject(layerName, objectKey) → boolean
지정한 레이어와 객체 키를 기반으로 해당 지붕을 선택합니다. 선택된 지붕 정보는 이후 태양광 패널 배치 등의 작업에 사용됩니다.
- Parameters - layerName(- string): 대상 객체가 속한 레이어 이름
- objectKey(- string): 대상 객체의 고유 키
 
- Return - true: 지붕 선택 성공
- false: 지붕 선택 실패
 
Module.getSolar().selectRoofByObject("building_layer", "object_001");getAreaPointsOnTerrain() → JSVec3Array
지형에 설정된 태양광 설치 영역의 경계 좌표들을 반환합니다.
- Return - JSVec3Array: 지형에 지정된 영역의 3D 좌표 배열
 
let areaPoints = Module.getSolar().getAreaPointsOnTerrain();getModuleSetWidthGapOnTerrain() → number
지형에 배치된 태양광 모듈 배열 간의 가로 간격(m)을 반환합니다.
- Return - number: 모듈 배열 간 가로 간격 (meters)
 
let widthGap = Module.getSolar().getModuleSetWidthGapOnTerrain();getModuleSetHeightGapOnTerrain() → number
지형에 배치된 태양광 모듈 배열 간의 세로 간격(m)을 반환합니다.
- Return - number: 모듈 배열 간 세로 간격 (meters)
 
let heightGap = Module.getSolar().getModuleSetHeightGapOnTerrain();setDirectionOfModuleOnTerrain(isSpecific, direction) → void
지형에 배치된 태양광 모듈의 방향 각도를 설정합니다.
_isSpecific이 true인 경우 입력한 각도(direction)를 적용하며, false인 경우 자동 방향을 사용합니다.
- Parameters - isSpecific(- boolean): true 시 사용자가 지정한 각도를 적용
- direction(- number): 모듈 설치 방향 각도 (0~360도, degrees)
 
Module.getSolar().setDirectionOfModuleOnTerrain(true, 180.0);rebuildModuleOnTerrain() → void
지형에 배치된 태양광 모듈을 현재 설정값에 따라 다시 배치합니다. 방향, 간격, 여백 등의 변경사항이 반영됩니다.
Module.getSolar().rebuildModuleOnTerrain();setModuleSetWidthGapOnTerrain(gap) → void
지형에 배치되는 태양광 모듈 세트 간의 가로 간격을 설정합니다.
- Parameters - gap(- number): 세트 간 가로 간격 (meters). 0보다 작은 값은 자동으로 0으로 보정됩니다.
 
Module.getSolar().setModuleSetWidthGapOnTerrain(1.5);setModuleSetHeightGapOnTerrain(gap) → void
지형에 배치되는 태양광 모듈 세트 간의 세로 간격을 설정합니다.
- Parameters - gap(- number): 세트 간 세로 간격 (meters). 0보다 작은 값은 자동으로 0으로 보정됩니다.
 
Module.getSolar().setModuleSetHeightGapOnTerrain(1.0);getAlignAreaAngleOnTerrain() → number
지형에 설정된 배치 영역의 정렬 각도를 반환합니다.
- Return - number: 정렬 각도 (degrees 단위). 0 ~ 360 사이의 값이 반환됩니다.
 
let angle = Module.getSolar().getAlignAreaAngleOnTerrain();getCenterOfMassOnTerrain() → CJSVector3D
지형 위에 배치된 태양광 패널의 질량 중심 위치를 반환합니다.
반환되는 값은 경도, 위도, 고도 순서의 좌표입니다.
- Return - CJSVector3D: 질량 중심 위치 (longitude, latitude, altitude)
 
let center = Module.getSolar().getCenterOfMassOnTerrain();
console.log(center.lon, center.lat, center.alt);getTerrainModuleCount() → number
지형에 설치된 태양광 모듈의 개수를 반환합니다.
- Return - number: 설치된 모듈 수
 
let count = Module.getSolar().getTerrainModuleCount();
console.log("Terrain Module Count:", count);clearModuleOnTerrain() → void
지형에 설치된 모든 태양광 모듈을 제거합니다.
- Return - 없음 
 
Module.getSolar().clearModuleOnTerrain();getLayerPannelInfo(layerName) → string
지정한 레이어 내 태양광 패널 객체들의 정보를 JSON 문자열 형태로 반환합니다. 패널 위치(위도/경도/고도), 크기, 방향, 각도 등의 상세 정보가 포함됩니다.
- Parameters - layerName(- string): 대상 레이어 이름
 
- Return - string: JSON 문자열- [ { "Pos": [경도, 위도, 고도], "MWidth": 패널가로길이, "MHeight": 패널세로길이, "Thickness": 패널두께, "MAngle": 수직각, "MDirection": 방향각 }, ... ]
 
let jsonInfo = Module.getSolar().getLayerPannelInfo("BuildingLayer");
let data = JSON.parse(jsonInfo);
console.log(data);SetModuleArray(nSection, nSectionCount, nSectionSet) → boolean
태양광 모듈의 배열 구성 정보를 설정합니다.
nSection
int
단일 배열당 섹션 수
nSectionCount
int
배열 전체의 섹션 개수
nSectionSet
int
배열 세트 수
- Return - true: 설정 성공 및 모듈 재배치 완료
- false: 설정 실패 (엔진 미초기화 또는 내부 오류)
 
- Description - 태양광 시스템 내 모듈 배열 구성을 설정합니다. 
 
var API = {
    JSSolarManager : Module.getSolarManager()
};
// 예: 각 배열당 5개 섹션, 섹션 총 20개, 세트 2개 구성
var result = API.JSSolarManager.SetModuleArray(5, 20, 2);
if (!result) {
    console.error("모듈 배열 설정 실패");
}Last updated
Was this helpful?