First commit
This commit is contained in:
commit
87d22a4516
235 changed files with 51802 additions and 0 deletions
63
node_modules/proj4/lib/projections/gstmerc.js
generated
vendored
Normal file
63
node_modules/proj4/lib/projections/gstmerc.js
generated
vendored
Normal file
|
@ -0,0 +1,63 @@
|
|||
import latiso from '../common/latiso';
|
||||
import sinh from '../common/sinh';
|
||||
import cosh from '../common/cosh';
|
||||
import invlatiso from '../common/invlatiso';
|
||||
|
||||
export function init() {
|
||||
|
||||
// array of: a, b, lon0, lat0, k0, x0, y0
|
||||
var temp = this.b / this.a;
|
||||
this.e = Math.sqrt(1 - temp * temp);
|
||||
this.lc = this.long0;
|
||||
this.rs = Math.sqrt(1 + this.e * this.e * Math.pow(Math.cos(this.lat0), 4) / (1 - this.e * this.e));
|
||||
var sinz = Math.sin(this.lat0);
|
||||
var pc = Math.asin(sinz / this.rs);
|
||||
var sinzpc = Math.sin(pc);
|
||||
this.cp = latiso(0, pc, sinzpc) - this.rs * latiso(this.e, this.lat0, sinz);
|
||||
this.n2 = this.k0 * this.a * Math.sqrt(1 - this.e * this.e) / (1 - this.e * this.e * sinz * sinz);
|
||||
this.xs = this.x0;
|
||||
this.ys = this.y0 - this.n2 * pc;
|
||||
|
||||
if (!this.title) {
|
||||
this.title = "Gauss Schreiber transverse mercator";
|
||||
}
|
||||
}
|
||||
|
||||
// forward equations--mapping lat,long to x,y
|
||||
// -----------------------------------------------------------------
|
||||
export function forward(p) {
|
||||
|
||||
var lon = p.x;
|
||||
var lat = p.y;
|
||||
|
||||
var L = this.rs * (lon - this.lc);
|
||||
var Ls = this.cp + (this.rs * latiso(this.e, lat, Math.sin(lat)));
|
||||
var lat1 = Math.asin(Math.sin(L) / cosh(Ls));
|
||||
var Ls1 = latiso(0, lat1, Math.sin(lat1));
|
||||
p.x = this.xs + (this.n2 * Ls1);
|
||||
p.y = this.ys + (this.n2 * Math.atan(sinh(Ls) / Math.cos(L)));
|
||||
return p;
|
||||
}
|
||||
|
||||
// inverse equations--mapping x,y to lat/long
|
||||
// -----------------------------------------------------------------
|
||||
export function inverse(p) {
|
||||
|
||||
var x = p.x;
|
||||
var y = p.y;
|
||||
|
||||
var L = Math.atan(sinh((x - this.xs) / this.n2) / Math.cos((y - this.ys) / this.n2));
|
||||
var lat1 = Math.asin(Math.sin((y - this.ys) / this.n2) / cosh((x - this.xs) / this.n2));
|
||||
var LC = latiso(0, lat1, Math.sin(lat1));
|
||||
p.x = this.lc + L / this.rs;
|
||||
p.y = invlatiso(this.e, (LC - this.cp) / this.rs);
|
||||
return p;
|
||||
}
|
||||
|
||||
export var names = ["gstmerg", "gstmerc"];
|
||||
export default {
|
||||
init: init,
|
||||
forward: forward,
|
||||
inverse: inverse,
|
||||
names: names
|
||||
};
|
Loading…
Add table
editor.link_modal.header
Reference in a new issue