EgisCorp / XDWorld

WebGL 기반 3D GIS 엔진
15 stars 7 forks source link

레이더 객체 초기화 문의 #386

Closed jsh0801 closed 9 months ago

jsh0801 commented 9 months ago

엔진 버전 : 1.55.3

문의 내용 :

안녕하세요. 융복합서비스팀 정서해 사원 입니다. 레이더 객체 초기화 관련하여 문의 드립니다.

1. 개요

Module.getAnalysis().getRCCollection() 함수를 사용하여 레이더 객체를 생성하였습니다. 생성된 객체는 다음과 같습니다.

000

몇가지 여쭤볼 것이 있습니다.

1). 해당 객체의 clear(); 기능 존재 여부 2). clear 기능이 없는 경우, clear 기능 추가 요청 2-1). 해당 객체를 레이어에 할당하는 방법


2. 사용한 코드

  //분석 내용 객체화 및 JSRCCollection ~ 클래스 객체화
  var pRCCol = this.mapService.egisMap!.module!.getAnalysis().getRCCollection();

  //레이더 생성 및 옵션 적용
    var Radar = pRCCol.createRadarCover(_option);
    pRCCol.setColor(_colorOption);

    //레이더 전파분석 생성 후 가시화 옵션 조작
    var rc = pRCCol.indexAt(index);
    if (rc != null) rc.setVisible(false, false);
  }

3. 코드에 대한 결과

1). 레이어 생성 레이어 생성

2). 가시화 조절 가시화 컨트롤


4. 테스트

1). 레이더 객체 clear();

  var Radar = pRCCol.createRadarCover(_option);
  Radar.clear();

  // => 실패 (TypeError: radar.clear is not a function)

2). 레이어에 레이더 객체 할당

  var Radar = pRCCol.createRadarCover(_option);
  ...
  let layer = layerList.nameAtLayer(_layerName);
  layer.addObject(radar, 0);

  => 실패 (BindingError: Expected null or instance of JSObject3D, got an instance of JSRadarCover)

감사합니다.

avamk2 commented 9 months ago

안녕하세요

해당기능은 사업 특화로 제작된 기능이라 레퍼런스관련 공개되어 있진 않습니다.

문의 사항에 답변을 드리면

A1,A2) clear 기능이 JSRadarCover 내에 할당한게 아닌 JSRCCollection에서 bool JSRCCollection::indexAtDelete(int _nIndex) 방식으로 JSRadarCover 를 컨테이너 관리에서 삭제하는 방식으로 접근합니다. 해당 Object를 재사용을 염두해 두지 않아서 컨테이너 레벨에서 삭제하는 것으로 제작되어 있습니다.

A2-1) API 설계에서 해당 부분은 레이어에 등록하는 객체 개념이 아닌 별도로 관리되는 분석 모듈로 제작되었기 때문에 JSRCCollection 통한 컨테이너 단계로 API가 따로 있습니다. 그래서 해당 객체는 JSLayer로 호환하지 않습니다.

해당건은 서두에 언급되었지만 사업전용으로 개발된 모듈이라 수정보완 또는 기능 피드백은 연구소에 메일로 문의 주시기 바랍니다.

jsh0801 commented 9 months ago

안녕하세요.

답변주신 내용 적용하여 문제 해결하였습니다. 감사합니다! ^^