Kxc0822a
2022-04-11 0993108a9566af0e912415f6ef4d37d9e3b65a6d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
 * @Author: your name
 * @Date: 2021-12-10 15:17:06
 * @LastEditTime: 2021-12-10 15:18:15
 * @LastEditors: Please set LastEditors
 * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 * @FilePath: \huizhi-sdk\src\components\Map\libs\Point.js
 */
import { Cesium, wutu3d } from '@/global';
export function getCatesian3FromPX(px, viewer) {
  const picks = viewer.scene.drillPick(px);
  viewer.scene.render();
  let cartesian;
  let isOn3dtiles = false;
  for (let i = 0; i < picks.length; i++) {
    if (picks[i].primitive &&picks[i].primitive instanceof Cesium.Cesium3DTileset) {
      isOn3dtiles = true;
    }
  }
  if (isOn3dtiles) {
    cartesian = viewer.scene.pickPosition(px);
  } else {
    var ray = viewer.camera.getPickRay(px);
    if (!ray) return null;
    cartesian = viewer.scene.globe.pick(ray, viewer.scene);
  }
  return cartesian;
}
export function Cartesian3_to_WGS84(point) {
  const cartesian33 = new Cesium.Cartesian3(point.x, point.y, point.z);
  const cartographic = Cesium.Cartographic.fromCartesian(cartesian33);
  const lat = Cesium.Math.toDegrees(cartographic.latitude);
  const lng = Cesium.Math.toDegrees(cartographic.longitude);
  const alt = cartographic.height;
  return {
    lng: lng,
    lat: lat,
    alt: alt,
  };
}