proj4
Version:
Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.
56 lines (47 loc) • 1.23 kB
JavaScript
import adjust_lon from '../common/adjust_lon';
/**
* @typedef {Object} LocalThis
* @property {number} t1
* @property {number} t2
*/
/** @this {import('../defs.js').ProjectionDefinition} */
export function init() {
this.x0 = this.x0 || 0;
this.y0 = this.y0 || 0;
this.lat0 = this.lat0 || 0;
this.long0 = this.long0 || 0;
/// this.t2;
}
/**
* Equirectangular forward equations--mapping lat,long to x,y
* @this {import('../defs.js').ProjectionDefinition & LocalThis}
*/
export function forward(p) {
var lon = p.x;
var lat = p.y;
var dlon = adjust_lon(lon - this.long0, this.over);
var x = this.x0 + this.a * dlon * Math.cos(this.lat0);
var y = this.y0 + this.a * lat;
this.t1 = x;
this.t2 = Math.cos(this.lat0);
p.x = x;
p.y = y;
return p;
}
/* Equirectangular inverse equations--mapping x,y to lat/long
--------------------------------------------------------- */
export function inverse(p) {
p.x -= this.x0;
p.y -= this.y0;
var lat = p.y / this.a;
var lon = adjust_lon(this.long0 + p.x / (this.a * Math.cos(this.lat0)), this.over);
p.x = lon;
p.y = lat;
}
export var names = ['equi'];
export default {
init: init,
forward: forward,
inverse: inverse,
names: names
};