You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
3.2 KiB
JavaScript
95 lines
3.2 KiB
JavaScript
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();
|
|
});
|
|
});
|