15832144755
2022-01-06 7b4c8991dca9cf2a809a95e239d144697d3afb56
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import { Cartesian3 } from "../../Source/Cesium.js";
import { Cartographic } from "../../Source/Cesium.js";
import { Ellipsoid } from "../../Source/Cesium.js";
import { GeographicProjection } from "../../Source/Cesium.js";
import { Math as CesiumMath } from "../../Source/Cesium.js";
 
describe("Core/GeographicProjection", function () {
  it("construct0", function () {
    var projection = new GeographicProjection();
    expect(projection.ellipsoid).toEqual(Ellipsoid.WGS84);
  });
 
  it("construct1", function () {
    var ellipsoid = Ellipsoid.UNIT_SPHERE;
    var projection = new GeographicProjection(ellipsoid);
    expect(projection.ellipsoid).toEqual(ellipsoid);
  });
 
  it("project0", function () {
    var height = 10.0;
    var cartographic = new Cartographic(0.0, 0.0, height);
    var projection = new GeographicProjection();
    expect(projection.project(cartographic)).toEqual(
      new Cartesian3(0.0, 0.0, height)
    );
  });
 
  it("project1", function () {
    var ellipsoid = Ellipsoid.WGS84;
    var cartographic = new Cartographic(Math.PI, CesiumMath.PI_OVER_TWO, 0.0);
    var expected = new Cartesian3(
      Math.PI * ellipsoid.radii.x,
      CesiumMath.PI_OVER_TWO * ellipsoid.radii.x,
      0.0
    );
    var projection = new GeographicProjection(ellipsoid);
    expect(projection.project(cartographic)).toEqual(expected);
  });
 
  it("project2", function () {
    var ellipsoid = Ellipsoid.UNIT_SPHERE;
    var cartographic = new Cartographic(-Math.PI, CesiumMath.PI_OVER_TWO, 0.0);
    var expected = new Cartesian3(-Math.PI, CesiumMath.PI_OVER_TWO, 0.0);
    var projection = new GeographicProjection(ellipsoid);
    expect(projection.project(cartographic)).toEqual(expected);
  });
 
  it("project3", function () {
    var ellipsoid = Ellipsoid.WGS84;
    var cartographic = new Cartographic(Math.PI, CesiumMath.PI_OVER_TWO, 0.0);
    var expected = new Cartesian3(
      Math.PI * ellipsoid.radii.x,
      CesiumMath.PI_OVER_TWO * ellipsoid.radii.x,
      0.0
    );
    var projection = new GeographicProjection(ellipsoid);
    var result = new Cartesian3(0.0, 0.0, 0.0);
    var returnValue = projection.project(cartographic, result);
    expect(result).toEqual(returnValue);
    expect(result).toEqual(expected);
  });
 
  it("unproject0", function () {
    var cartographic = new Cartographic(
      CesiumMath.PI_OVER_TWO,
      CesiumMath.PI_OVER_FOUR,
      12.0
    );
    var projection = new GeographicProjection();
    var projected = projection.project(cartographic);
    expect(projection.unproject(projected)).toEqual(cartographic);
  });
 
  it("unproject1", function () {
    var cartographic = new Cartographic(
      CesiumMath.PI_OVER_TWO,
      CesiumMath.PI_OVER_FOUR,
      12.0
    );
    var projection = new GeographicProjection();
    var projected = projection.project(cartographic);
    var result = new Cartographic(0.0, 0.0, 0.0);
    var returnValue = projection.unproject(projected, result);
    expect(result).toEqual(returnValue);
    expect(result).toEqual(cartographic);
  });
 
  it("project throws without cartesian", function () {
    var projection = new GeographicProjection();
    expect(function () {
      return projection.unproject();
    }).toThrowDeveloperError();
  });
});