Cesium의 좌표 선택 상세 정보

8270 단어 cesuim 학습

Cesium의 좌표 선택

  • 화면 좌표: 마우스 클릭 위치 거리canvas 왼쪽 상단의 픽셀 값
    var handler= new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
    handler.setInputAction(function (movement) {
        // movement.position  
         console.log(movement.position);
    }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
    
  • 지도/타원형 표면의 좌표, pickEllipsoid(windowPosition, ellipsoid, result) → Cartesian3
    var canvas = viewer.scene.canvas;
    var center = new Cesium.Cartesian2(canvas.clientWidth / 2.0, canvas.clientHeight / 2.0);
    var ellipsoid = viewer.scene.globe.ellipsoid;
    var result = viewer.camera.pickEllipsoid(center, ellipsoid);
    
  • 지표 좌표: 지형에만 교차할 수 있고 모형, 경사 촬영 표면을 포함하지 않으며 지형을 탑재한 후의 좌표를 얻을 수 있다. pick(ray, scene, result) → Cartesian3|undefined
    //  windowPosition  。
    //  Cartesian3 。
    var ray = viewer.camera.getPickRay(windowCoordinates);
    //  。 。
    var intersection = globe.pick(ray, scene);
    
  • 장면 좌표: 창 좌표에 따라 장면의 깊이 버퍼에서 상응하는 위치를 픽업하고 피리칼 좌표를 되돌려주면 지형을 구할 수 있을 뿐만 아니라 지형을 제외한 다른 모든 깊이를 쓴 물체도 구할 수 있다.pickPosition(windowPosition, result) → Cartesian3
    var viewer = new Cesium.Viewer('cesiumContainer');
    var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
    handler.setInputAction(function (movement) {
        var pickedObject = viewer.scene.pick(movement.endPosition);
        //  , pickPositionSupported  
        if (scene.pickPositionSupported && Cesium.defined(pickedObject)) {
            var cartesian = viewer.scene.pickPosition(movement.endPosition);
         	console.log(cartesian);
        } 
    }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
    
  • globe.pickscene.pickPosition 비교
  • globe.pick의 결과는 상대적으로 안정적이고 정확하며 지형 깊이 검측의 오픈 여부, 기본 지형이든 다른 지형 데이터든 상관없다.
  • scene.pickPosition는 지형 깊이 측정을 켜고 기본 지형을 사용하지 않을 때만 정확하다.
  • 주의점: globe.pick 지형만 구할 수 있다.scene.pickPosition 지형을 구할 수 있을 뿐만 아니라 지형을 제외한 모든 깊이를 쓴 물체도 구할 수 있다.그래서 사용할 때 양자를 결합하여 사용할 수 있다.

  • Scenepick설명
  • pick:scene.pick을 통해pick대상을 얻을 수 있고, pick.id을 통해현재entity대상을 픽업할 수 있으며, Cesium3DTileFeature대상을 획득할 수 있다.
  • drillPick:scene.drillPick(click.position)는 현재 마우스 클릭 위치에서 entity의 집합을 가져온 다음에 for순환을 통해 현재 좌표 아래의 모든entity를 얻을 수 있습니다.

  • 좋은 웹페이지 즐겨찾기