echert_proj.lua
NAME
echert_proj
FUNCTION
echert_proj(lon, lat)
NOTES
Eckert V projection.
Based on the equations
x = lon * (1 + cos(lat)) / sqrt(2 + pi)
y = 2 * lat / / sqrt(2 + pi)
of Cartographic Projection Procedures by G.I. Evenden, September 24, 1995
lon and lat are expected to vary from -180 to 180 and from -90 to 90, respectively.
Resulted lon varies from -2.71 to 2.74 and lat from -1.21 to 1.28.
INPUTS
lon - number or zeArray object as longitude in degree
lat - number or zeArray object as latitude in degree
OUTPUTS
Modifies lon and lat if they are zeArray objects; otherwise returns lon and lat.
SOURCE
require("register")
function echert_proj(lon, lat)
local p = 0.441012772
if (type(lon) == "userdata") then
zeMath.deg2rad(lon)
zeMath.deg2rad(lat)
local vec = zeUtl.new("double")
lat:copy(vec)
zeMath.cos(vec)
vec:add(1)
lon:mul(vec)
lon:mul(p)
lat:mul(2)
lat:mul(p)
else
lon = lon * 0.017453293
lat = lat * 0.017453293
lon = lon * (1 + math.cos(lat)) * p
lat = 2 * lat * p
return lon, lat
end
end