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.

63 lines
2.1 KiB
JavaScript

import DeveloperError from "./DeveloperError.js";
/**
* Defines how geodetic ellipsoid coordinates ({@link Cartographic}) project to a
* flat map like Cesium's 2D and Columbus View modes.
*
* @alias MapProjection
* @constructor
* @abstract
*
* @see GeographicProjection
* @see WebMercatorProjection
*/
function MapProjection() {
DeveloperError.throwInstantiationError();
}
Object.defineProperties(MapProjection.prototype, {
/**
* Gets the {@link Ellipsoid}.
*
* @memberof MapProjection.prototype
*
* @type {Ellipsoid}
* @readonly
*/
ellipsoid: {
get: DeveloperError.throwInstantiationError,
},
});
/**
* Projects {@link Cartographic} coordinates, in radians, to projection-specific map coordinates, in meters.
*
* @memberof MapProjection
* @function
*
* @param {Cartographic} cartographic The coordinates to project.
* @param {Cartesian3} [result] An instance into which to copy the result. If this parameter is
* undefined, a new instance is created and returned.
* @returns {Cartesian3} The projected coordinates. If the result parameter is not undefined, the
* coordinates are copied there and that instance is returned. Otherwise, a new instance is
* created and returned.
*/
MapProjection.prototype.project = DeveloperError.throwInstantiationError;
/**
* Unprojects projection-specific map {@link Cartesian3} coordinates, in meters, to {@link Cartographic}
* coordinates, in radians.
*
* @memberof MapProjection
* @function
*
* @param {Cartesian3} cartesian The Cartesian position to unproject with height (z) in meters.
* @param {Cartographic} [result] An instance into which to copy the result. If this parameter is
* undefined, a new instance is created and returned.
* @returns {Cartographic} The unprojected coordinates. If the result parameter is not undefined, the
* coordinates are copied there and that instance is returned. Otherwise, a new instance is
* created and returned.
*/
MapProjection.prototype.unproject = DeveloperError.throwInstantiationError;
export default MapProjection;