DSDSWeb/static/js/Cesium-1.53/Specs/Core/GeographicProjectionSpec.js

84 lines
3.2 KiB
JavaScript

defineSuite([
'Core/GeographicProjection',
'Core/Cartesian3',
'Core/Cartographic',
'Core/Ellipsoid',
'Core/Math'
], function(
GeographicProjection,
Cartesian3,
Cartographic,
Ellipsoid,
CesiumMath) {
'use strict';
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();
});
});