InteractionVolume

체적량 측정을 위한 사용자 입력(마우스/키보드) 클래스.
User input (mouse/keyboard) class for Volumetric Measurement.

new Ditap.InteractionVolume(viewer, volumeOption)

Name Type Description
viewer DitapViewer 사용할 Ditap Viewer 인스턴스.
The DitapViewer instance to use.
volumeOption object 각각 다음과 같은 속성을 가진 객체.
Object with the following properties:
Name Type Description
measurementVolume MeasurementVolume optional 체적량 측정 연산 및 영역 표시 클래스.
Volumetric Measurement Calculation and Region Display Class.
startCallback function optional 시작점 생성 콜백 함수.
Startpoint generation callback function.
addCallback function optional 포인트 추가 콜백 함수.
Point add callback function.
endCallback function optional 종료점 생성 콜백 함수.
Endpoint generation callback function.
Example:
const getUrlFromBase64 = (base64Data) => {
  const b64Data = base64Data;
  const byteCharacters = window.atob(b64Data);
  const byteNumbers = new Array(byteCharacters.length);
  for (let i = 0; i < byteCharacters.length; i++) {
    byteNumbers[i] = byteCharacters.charCodeAt(i);
  }
  const byteArray = new Uint8Array(byteNumbers);
  const blob = new Blob([byteArray], { type: "image/png" });

  return URL.createObjectURL(blob);
};

const viewer = new Ditap.DitapViewer("ditapContainer", {
  baseLayerPicker: true,
  // 지형(터레인 지정)
  terrainProviderViewModels: [
    new Ditap.ProviderViewModel({
      name: "Ditap Korea Terrain",
      iconUrl: getUrlFromBase64(
        Ditap.ConstantUrl.DITAP_TERRAIN_IMG_URL
      ),
      tooltip: "WGS84 standard ellipsoid, also known as EPSG:4326",
      category: "Ditap",
      creationFunction: function () {
        return Ditap.NationwideTerrainProvider.create();
      },
    }),
  ],
});

const destination = Ditap.Cartesian3.fromDegrees(
  126.978275264,
  37.566642192,
  400
);

// 카메라 이동
viewer.scene.camera.flyTo({
  destination: destination,
});

// 1. 생성 시 MeasurementVolume 할당
const measurementVolume = new Ditap.MeasurementVolume(viewer);
const props = {
  measurementVolume: measurementVolume
};
const interactionVolume = new Ditap.InteractionVolume(viewer, props);
interactionVolume.on();

// 2. 생성 후 MeasurementVolume 할당
const measurementVolume = new Ditap.MeasurementVolume(viewer);
const interactionVolume = new Ditap.InteractionVolume(viewer);
interactionVolume.measurementVolume = measurementVolume;
interactionVolume.on();

Members

addCallback : function|undefined

포인트 생성 콜백 함수.
Measurement point add callback function.

endCallback : function|undefined

마지막 포인트 생성 콜백 함수.
Measurement end callback function.

readonly isOn : boolean

핸들러 비/활성화 상태.
Handler enabled or disabled.

measurementVolume : MeasurementVolume|undefined

체적량 측정 연산 및 영역 표시 클래스.
MeasurementVolume instance.

startCallback : function|undefined

측정 시작 콜백 함수.
Measurement start callback function.

viewer : DitapViewer

사용할 Ditap Viewer 인스턴스.
DitapViewer.

Methods

abort()

측정 중 중단.
Interrupt during measurement.

createMobileEvent()

모바일 전용 이벤트 추가.
Add mobile-specific event.

destroy()

객체의 리소스 파괴.
Destroy resources held by this object.

destroyInstance()

생성중인 인스턴스 파괴.
Destroying the instance being created.

off()

체적 측정 핸들러 종료. (MeasurementVolume 초기화 필수.)
End volume measurement handler. (MeasurementVolume initialization is required.)

on()

체적 측정 핸들러 실행. (MeasurementVolume 초기화 필수.)
Execute volume measurement handler. (MeasurementVolume initialization is required.)

removeMobileEvent()

모바일 전용 이벤트 제거.
Remove mobile-specific event.