44 lines
1002 B
JavaScript
44 lines
1002 B
JavaScript
/**
|
|
* A projection determines how a geographical card has to
|
|
* be interpreted to map coordinate to pixels.
|
|
*
|
|
* Most used transformation is the mercator projection,
|
|
* which projects a sphere on a cylinder.
|
|
*
|
|
* @abstract
|
|
*/
|
|
|
|
export default class Projection {
|
|
/**
|
|
* Transforms a coordinate to a normalized position on the map.
|
|
*
|
|
* @param {*} coords
|
|
* @memberof Projection
|
|
*/
|
|
forward(coords) {
|
|
console.error('You must override the forward function in ' + this.name + '.')
|
|
}
|
|
|
|
/**
|
|
* Transforms a normalized point on the map to a coordinate.
|
|
*
|
|
* @param {*} point
|
|
* @memberof Projection
|
|
*/
|
|
backward(point) {
|
|
console.error('You must override the backward function in ' + this.name + '.')
|
|
}
|
|
|
|
toString() {
|
|
return 'Projection (abstract)'
|
|
}
|
|
|
|
get name() {
|
|
return this.toString()
|
|
}
|
|
|
|
get maxViewport() {
|
|
return { min: new PIXI.Point(0, 0), max: new PIXI.Point(1, 1) }
|
|
}
|
|
}
|