jxdnsong
2023-04-05 be147d2a99d60a30b20fade742e85b45f06172ae
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
41
42
// export default function midCartesian (start, end) {
//     let c1 = global.DC.Namespace.Cesium.Ellipsoid.WGS84.cartesianToCartographic(start)
//     let c2 = global.DC.Namespace.Cesium.Ellipsoid.WGS84.cartesianToCartographic(end)
//     let cm = new global.DC.Namespace.Cesium.EllipsoidGeodesic(c1, c2).interpolateUsingFraction(0.5)
 
//     let cc1 = global.DC.Transform.transformCartesianToWGS84(start)
//     let cc2 = global.DC.Transform.transformCartesianToWGS84(end)
 
//     let lng = (cc1.lng - cc2.lng) / 2 + cc1.lng
//     let lat = (cc1.lat - cc2.lat) / 2 + cc1.lat
//     let alt = (cc1.alt - cc2.alt) / 2 + cc1.alt
//     let cc3 = global.DC.Transform.transformWGS84ToCartesian({ lng, lat, alt })
//     return global.DC.Namespace.Cesium.Ellipsoid.WGS84.cartographicToCartesian(cm)
// }
 
 
export default function midCartesian (start, end) {
    let c1 = global.DC.Transform.transformCartesianToWGS84(start)
    let c2 = global.DC.Transform.transformCartesianToWGS84(end)
    let lng, lat, alt
    if (c1.lng >= c2.lng) {
        lng = c1.lng - (c1.lng - c2.lng) / 2
    } else {
        lng = c1.lng + (c2.lng - c1.lng) / 2
    }
 
    if (c1.lat >= c2.lat) {
        lat = c1.lat - (c1.lat - c2.lat) / 2
    } else {
        lat = c1.lat + (c2.lat - c1.lat) / 2
    }
 
    if (c1.alt >= c2.alt) {
        alt = c1.alt - (c1.alt - c2.alt) / 2
    } else {
        alt = c1.alt + (c2.alt - c1.alt) / 2
    }
 
    let c3 = global.DC.Transform.transformWGS84ToCartesian({ lng, lat, alt })
 
    return c3
}