/** * 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) } } }