forgot to add several source files
This commit is contained in:
parent
e7410e6e03
commit
cfdaebb299
10
src/geo/projection/Projection.LonLat.js
Normal file
10
src/geo/projection/Projection.LonLat.js
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
L.Projection.LonLat = {
|
||||
project: function(latlng) {
|
||||
return new L.Point(latlng.lng, latlng.lat);
|
||||
},
|
||||
|
||||
unproject: function(point, unbounded) {
|
||||
return new L.LatLng(point.y, point.x, unbounded);
|
||||
}
|
||||
};
|
49
src/geo/projection/Projection.Mercator.js
Normal file
49
src/geo/projection/Projection.Mercator.js
Normal file
@ -0,0 +1,49 @@
|
||||
|
||||
L.Projection.Mercator = {
|
||||
MAX_LATITUDE: 85.0840591556,
|
||||
|
||||
R_MINOR: 6356752.3142,
|
||||
R_MAJOR: 6378137,
|
||||
|
||||
project: function(/*LatLng*/ latlng) /*-> Point*/ {
|
||||
var d = L.LatLng.DEG_TO_RAD,
|
||||
max = this.MAX_LATITUDE,
|
||||
lat = Math.max(Math.min(max, latlng.lat), -max),
|
||||
r = this.R_MAJOR,
|
||||
x = latlng.lng * d * r,
|
||||
y = lat * d,
|
||||
tmp = this.R_MINOR / r,
|
||||
eccent = Math.sqrt(1.0 - tmp * tmp),
|
||||
con = eccent * Math.sin(y);
|
||||
|
||||
con = Math.pow((1 - con)/(1 + con), eccent * 0.5);
|
||||
|
||||
var ts = Math.tan(0.5 * ((Math.PI * 0.5) - y)) / con;
|
||||
y = -r * Math.log(ts);
|
||||
|
||||
return new L.Point(x, y);
|
||||
},
|
||||
|
||||
unproject: function(/*Point*/ point, /*Boolean*/ unbounded) /*-> LatLng*/ {
|
||||
var d = L.LatLng.RAD_TO_DEG,
|
||||
r = this.R_MAJOR,
|
||||
lng = point.x * d / r,
|
||||
tmp = this.R_MINOR / r,
|
||||
eccent = Math.sqrt(1 - (tmp * tmp)),
|
||||
ts = Math.exp(- point.y / r),
|
||||
phi = Math.PI/2 - 2 * Math.atan(ts),
|
||||
numIter = 15,
|
||||
tol = 1e-7,
|
||||
i = numIter,
|
||||
dphi = 0.1,
|
||||
con;
|
||||
|
||||
while ((Math.abs(dphi) > tol) && (--i > 0)) {
|
||||
con = eccent * Math.sin(phi);
|
||||
dphi = Math.PI/2 - 2 * Math.atan(ts * Math.pow((1.0 - con)/(1.0 + con), 0.5 * eccent)) - phi;
|
||||
phi += dphi;
|
||||
}
|
||||
|
||||
return new L.LatLng(phi * d, lng, unbounded);
|
||||
}
|
||||
};
|
23
src/geo/projection/Projection.SphericalMercator.js
Normal file
23
src/geo/projection/Projection.SphericalMercator.js
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
L.Projection.SphericalMercator = {
|
||||
MAX_LATITUDE: 85.0511287798,
|
||||
|
||||
project: function(/*LatLng*/ latlng) /*-> Point*/ {
|
||||
var d = L.LatLng.DEG_TO_RAD,
|
||||
max = this.MAX_LATITUDE,
|
||||
lat = Math.max(Math.min(max, latlng.lat), -max),
|
||||
x = latlng.lng * d,
|
||||
y = lat * d;
|
||||
y = Math.log(Math.tan(Math.PI/4 + y/2));
|
||||
|
||||
return new L.Point(x, y);
|
||||
},
|
||||
|
||||
unproject: function(/*Point*/ point, /*Boolean*/ unbounded) /*-> LatLng*/ {
|
||||
var d = L.LatLng.RAD_TO_DEG,
|
||||
lng = point.x * d,
|
||||
lat = (2 * Math.atan(Math.exp(point.y)) - Math.PI/2) * d;
|
||||
|
||||
return new L.LatLng(lat, lng, unbounded);
|
||||
}
|
||||
};
|
Loading…
Reference in New Issue
Block a user