First commit
This commit is contained in:
commit
87d22a4516
235 changed files with 51802 additions and 0 deletions
100
node_modules/proj4/lib/projections/merc.js
generated
vendored
Normal file
100
node_modules/proj4/lib/projections/merc.js
generated
vendored
Normal file
|
@ -0,0 +1,100 @@
|
|||
import msfnz from '../common/msfnz';
|
||||
|
||||
import adjust_lon from '../common/adjust_lon';
|
||||
import tsfnz from '../common/tsfnz';
|
||||
import phi2z from '../common/phi2z';
|
||||
import {FORTPI, R2D, EPSLN, HALF_PI} from '../constants/values';
|
||||
export function init() {
|
||||
var con = this.b / this.a;
|
||||
this.es = 1 - con * con;
|
||||
if(!('x0' in this)){
|
||||
this.x0 = 0;
|
||||
}
|
||||
if(!('y0' in this)){
|
||||
this.y0 = 0;
|
||||
}
|
||||
this.e = Math.sqrt(this.es);
|
||||
if (this.lat_ts) {
|
||||
if (this.sphere) {
|
||||
this.k0 = Math.cos(this.lat_ts);
|
||||
}
|
||||
else {
|
||||
this.k0 = msfnz(this.e, Math.sin(this.lat_ts), Math.cos(this.lat_ts));
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!this.k0) {
|
||||
if (this.k) {
|
||||
this.k0 = this.k;
|
||||
}
|
||||
else {
|
||||
this.k0 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Mercator forward equations--mapping lat,long to x,y
|
||||
--------------------------------------------------*/
|
||||
|
||||
export function forward(p) {
|
||||
var lon = p.x;
|
||||
var lat = p.y;
|
||||
// convert to radians
|
||||
if (lat * R2D > 90 && lat * R2D < -90 && lon * R2D > 180 && lon * R2D < -180) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var x, y;
|
||||
if (Math.abs(Math.abs(lat) - HALF_PI) <= EPSLN) {
|
||||
return null;
|
||||
}
|
||||
else {
|
||||
if (this.sphere) {
|
||||
x = this.x0 + this.a * this.k0 * adjust_lon(lon - this.long0);
|
||||
y = this.y0 + this.a * this.k0 * Math.log(Math.tan(FORTPI + 0.5 * lat));
|
||||
}
|
||||
else {
|
||||
var sinphi = Math.sin(lat);
|
||||
var ts = tsfnz(this.e, lat, sinphi);
|
||||
x = this.x0 + this.a * this.k0 * adjust_lon(lon - this.long0);
|
||||
y = this.y0 - this.a * this.k0 * Math.log(ts);
|
||||
}
|
||||
p.x = x;
|
||||
p.y = y;
|
||||
return p;
|
||||
}
|
||||
}
|
||||
|
||||
/* Mercator inverse equations--mapping x,y to lat/long
|
||||
--------------------------------------------------*/
|
||||
export function inverse(p) {
|
||||
|
||||
var x = p.x - this.x0;
|
||||
var y = p.y - this.y0;
|
||||
var lon, lat;
|
||||
|
||||
if (this.sphere) {
|
||||
lat = HALF_PI - 2 * Math.atan(Math.exp(-y / (this.a * this.k0)));
|
||||
}
|
||||
else {
|
||||
var ts = Math.exp(-y / (this.a * this.k0));
|
||||
lat = phi2z(this.e, ts);
|
||||
if (lat === -9999) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
lon = adjust_lon(this.long0 + x / (this.a * this.k0));
|
||||
|
||||
p.x = lon;
|
||||
p.y = lat;
|
||||
return p;
|
||||
}
|
||||
|
||||
export var names = ["Mercator", "Popular Visualisation Pseudo Mercator", "Mercator_1SP", "Mercator_Auxiliary_Sphere", "merc"];
|
||||
export default {
|
||||
init: init,
|
||||
forward: forward,
|
||||
inverse: inverse,
|
||||
names: names
|
||||
};
|
Loading…
Add table
editor.link_modal.header
Reference in a new issue