Cesium의 pick 설명
1561 단어 webGis
먼저 각 픽의 역할에 대해 분류해 봅시다.
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);