1 /** 2 * Abstract; not implemented. There is no explicit constructor; this class 3 * merely serves to document the representation used by {@link pv.Geo.scale}. 4 * 5 * @class Represents a geographic projection. This class provides the core 6 * implementation for {@link pv.Geo.scale}s, mapping between geographic 7 * coordinates (latitude and longitude) and normalized screen space in the range 8 * [-1,1]. The remaining mapping between normalized screen space and actual 9 * pixels is performed by <tt>pv.Geo.scale</tt>. 10 * 11 * <p>Many geographic projections have a point around which the projection is 12 * centered. Rather than have each implementation add support for a 13 * user-specified center point, the <tt>pv.Geo.scale</tt> translates the 14 * geographic coordinates relative to the center point for both the forward and 15 * inverse projection. 16 * 17 * <p>In general, this class should not be used directly, unless the desire is 18 * to implement a new geographic projection. Instead, use <tt>pv.Geo.scale</tt>. 19 * Implementations are not required to implement inverse projections, but are 20 * needed for some forms of interactivity. Also note that some inverse 21 * projections are ambiguous, such as the connecting points in Dymaxian maps. 22 * 23 * @name pv.Geo.Projection 24 * @see pv.Geo.scale 25 */ 26 27 /** 28 * The <i>forward</i> projection. 29 * 30 * @function 31 * @name pv.Geo.Projection.prototype.project 32 * @param {pv.Geo.LatLng} latlng the latitude and longitude to project. 33 * @returns {pv.Vector} the xy-coordinates of the given point. 34 */ 35 36 /** 37 * The <i>inverse</i> projection; optional. 38 * 39 * @function 40 * @name pv.Geo.Projection.prototype.invert 41 * @param {pv.Vector} xy the x- and y-coordinates to invert. 42 * @returns {pv.Geo.LatLng} the latitude and longitude of the given point. 43 */ 44