Cesium의 pick 설명

1561 단어 webGis
cesium에서 서로 다른 대상을 얻으려면 픽업 방법을 통해 픽업을 해야 하지만 Cesium에는 여러 가지 픽업 방법이 있다. 예를 들어 씬에는 픽업,pickPosition,drillPick 등이 있고 camera에는 getPickRay,pickEllipsoid 등이 있으며 globel에는 픽업이 있다.
먼저 각 픽의 역할에 대해 분류해 봅시다.
scene 에서 (일반적으로 entity 대상을 가져오는 데 사용):
pick:scene.pick은 이 방법을 통해 pick 대상을 얻을 수 있습니다.pick을 통해.id는 현재entity 대상을 픽업할 수 있고 Cesium3DTileFeature 대상도 픽업할 수 있습니다.
drillPick:scene.drillPick(click.position)은 현재 마우스 클릭 위치에서 entity의 집합을 가져오고 for 순환을 통해 현재 좌표 아래의 모든 entity를 가져옵니다.
pickPosition:viewer를 통해.scene.pickPosition(movement.position)을 획득하면 필드에서 임의로 클릭한 곳에 대응하는 세계 좌표를 획득할 수 있습니다.(고정도가 정확하지 않음)
픽과 drillPick의 차이점: 픽은 하나의entity 대상만 얻을 수 있다(예를 들어 이 위치에 여러 개의 entity가 존재하면 점선이 같은 높이에 있지 않아도 점선entity는 점선entity를 덮을 수 있다). 그러나drillPick는 현재 좌표 아래의 여러 대상을 얻을 수 있다.
camera 및 globel의 pick:
이 두 개의 안쪽pick은 일반적으로 조합해서 사용하는데camera의 get Pick Ray를 통해ray(사선)를 획득한 다음globel의pick 방법을 통해 세계 좌표를 획득한다. 예를 들어 아래의 지형 좌표를 획득한다.
======================================================
1、픽을 통해 지형상의 좌표 획득
이것은 현재 마우스 위치의 3차원 좌표를 얻으려면 자주 사용하는 방법입니다.
첫 번째 단계:camera의 getPickRay를 통해 현재 화면 좌표를ray(사선)로 전환합니다.
viewer.camera.getPickRay(windowCoordinates);

두 번째 단계:ray와 지형의 교점을 찾아내면 3차원 세계 좌표를 구할 수 있다.
globe.pick(ray, scene);

2、pick을 통해 entity 획득
 handler.setInputAction(function(movement) {var pick = viewer.scene.pick(movement.end Position);//획득한 pick 객체 var picked Entity = Cesium.defined(pick)? pick.id: undefined;/pick.id 즉시entity}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

좋은 웹페이지 즐겨찾기