84 lines
3.2 KiB
JavaScript
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();
|
|
});
|
|
});
|