카메라 컨트롤 API 에 접근할 수 있는 클래스입니다.

Constructors

  • Parameters

    • dabeeoMapsManager: DabeeoMapsManager | DabeeoMaps2dManager

    Returns Control

Methods

  • 카메라의 type을 지정합니다. 2D와 3D가 지원됩니다. 단 전환시 poi, object, tag등은 초기상태로 reset 됩니다.

    Parameters

    • type: string

      type - 2D | 3D

    Returns Promise<boolean | Promise<boolean>>

    Example

    map.control.changeCamera('3D');
    
  • 카메라의 zoomLevel을 수정합니다

    Parameters

    • options: {
          transition?: boolean;
          zoom: number;
      }
      • Optional transition?: boolean
      • zoom: number

    Returns undefined | number

    설정한 zoomLevel

    Example

    map.control.changeZoom({zoom:22.3, transition:true});
    
  • 카메라를 원하는 물체에 포커스 시킵니다

    NAVIGATION으로 포커스 기능은 길찾기 경로를 그린 이후에 가능합니다. 만약에 길찾기가 모의주행 중 다른 층으로 이동하는 경우는 'floor-changed' event를 받아 층이 변경된 이후에 다시 호출해줘야 합니다

    padding 옵션값은 포커스하려는 물체의 Bounding Box 에 대한 상대적인 비율값으로 적용됩니다.

    예를 들어, { top: 10, left: 0, bottom: 10, right: 0 } 일 경우, Bounding Box 높이값의 10% 만큼 top, bottom padding 이 적용되고, Bounding Box 너비값의 0% 만큼 left, right padding 이 적용됩니다.

    즉, padding 값은 물체의 절대크기와 무관합니다.

    단, 옵션으로 지정한 padding 값은 top-bottom 방향 또는 left-right 방향 중 하나의 방향으로만 적용됩니다. 지정한 물체의 Bounding Box 의 가로세로비와 카메라의 가로세로비에 따라 padding 이 적용되는 방향이 달라집니다.

    Parameters

    Returns undefined | IFocusTo

    설정한 옵션, 옵션에 에러가 있거나 focus할 객체가 없는 경우 undefined

    Example


    // OBJECT - 원하는 오브젝트(array)로 focus합니다.
    map.control.focusTo({
    focus:{
    type:'OBJECT',
    ids: [objectId]
    // ids: ['OB-mxanpdYA1T2410', 'OB-aN7fGeVoze1959', 'OB-ccjURqW8hq1959']
    },
    transition:true,
    padding:{
    top: 0,
    left: 0,
    bottom: 0,
    right: 0,
    }
    })

    // OBJECT_ALL - 전체 오브젝트로 focus합니다.
    map.control.focusTo({
    focus:{
    type:'OBJECT_ALL',
    },
    transition:true,
    padding:{
    top: 0,
    left: 0,
    bottom: 0,
    right: 0,
    }
    })

    // NAVIGATION - 길찾기 이후에 전체 경로로 foucs합니다
    map.control.focusTo({
    focus:{
    type:'NAVIGATION',
    },
    transition:true,
    padding:{
    top: 0,
    left: 0,
    bottom: 0,
    right: 0,
    }
    })
  • 현재 카메라의 type을 전달합니다.

    Returns undefined | string

    return - 2D | 3D

    Example

    map.control.getCameraType();
    
  • 카메라의 현재 속성을 반환합니다. zoom, rotation, position, tilt

    Returns undefined | {
        center: {
            x: number;
            y: number;
        };
        rotation: number;
        zoom: number;
    }

  • 현재 줌레벨을 반환합니다.

    Returns number

    return - 현재의 줌 레벨

  • 카메라를 지정한 position으로 이동합니다.

    카메라 이동 설정은 현재 그려진 층에 대하여 동작하니, 카메라 이동 전에 층 변경 혹은 빌딩 변경을 하는 것을 권장

    Parameters

    • options: {
          floorId?: string;
          position: IVector2;
          transition?: boolean;
      }
      • Optional floorId?: string
      • position: IVector2
      • Optional transition?: boolean

    Returns undefined | IVector2

    설정한 옵션값

    Example

    map.control.moveTo({position:{ x: 1000, y: 1000 }, transition:true});
    
  • 카메라를 원래 상태로 리셋합니다.

    Parameters

    • Optional options: {
          transition?: boolean;
      }
      • Optional transition?: boolean

    Returns void

    Example

    map.control.reset({transition:true}});
    
  • 카메라를 지정한 값으로 설정합니다.

    map.control.set 함수 호출 전에 map.control.setOption을 호출하여 controlRangeOption을 먼저 정해두는 것을 권장

    Parameters

    • options: IControl

      options - { rotation: number, tilt: number, zoom: number } 카메라 회전, 경사, 줌 관련 옵션

    Returns undefined | IControl

    설정한 옵션값

    Example

    map.control.set({ rotation: 30, tilt: 50, zoom: 22.3, transition:true });
    
  • 카메라 컨트롤의 옵션을 설정합니다

    Parameters

    Returns undefined | IControlOption | {
        controls2d: {
            maxRotate: undefined | number;
            maxZoom: undefined | number;
            minRotate: undefined | number;
            minZoom: undefined | number;
        };
        controls3d: {
            maxRotate: undefined | number;
            maxTilt: undefined | number;
            maxZoom: undefined | number;
            minRotate: undefined | number;
            minTilt: undefined | number;
            minZoom: undefined | number;
        };
    }

    2d, 3d에 각각 설정된 control range 카메라 옵션값

    Example

    map.control.setOption({
    controlRangeOption : {
    zoom : {
    min:7,
    max:20
    },
    rotate : {
    min:30,
    max:50
    },
    tilt : {
    min:30,
    max:50
    },
    },
    mouseOption : {
    enableZoom : true,
    enableRotate : true,
    enablePan : true,
    buttonOption : {
    left : 'PAN',
    middle : 'ZOOM',
    right : 'ROTATE'
    }
    },
    touchOption : {
    enableZoom : true,
    enableRotate : true,
    enablePan : true,
    }
    })
  • 카메라를 zoom In 합니다. 현재 zoom의 5%만큼 zoom In됩니다

    Parameters

    • Optional options: {
          transition?: boolean;
      }
      • Optional transition?: boolean

    Returns undefined | number

    바뀌는 zoomLevel

    Example

    map.control.zoomIn({transition:true});
    
  • 카메라를 zoom Out합니다. 현재 zoom의 5%만큼 zoom Out됩니다

    Parameters

    • Optional options: {
          transition?: boolean;
      }
      • Optional transition?: boolean

    Returns undefined | number

    바뀌는 zoomLevel

    Example

    map.control.zoomOut({transition:true});