+++ /dev/null
-/*******************************************************************************\r
-NAME SINUSOIDAL\r
-\r
-PURPOSE: Transforms input longitude and latitude to Easting and\r
- Northing for the Sinusoidal projection. The\r
- longitude and latitude must be in radians. The Easting\r
- and Northing values will be returned in meters.\r
-\r
-PROGRAMMER DATE \r
----------- ---- \r
-D. Steinwand, EROS May, 1991 \r
-\r
-This function was adapted from the Sinusoidal projection code (FORTRAN) in the \r
-General Cartographic Transformation Package software which is available from \r
-the U.S. Geological Survey National Mapping Division.\r
- \r
-ALGORITHM REFERENCES\r
-\r
-1. Snyder, John P., "Map Projections--A Working Manual", U.S. Geological\r
- Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r
- State Government Printing Office, Washington D.C., 1987.\r
-\r
-2. "Software Documentation for GCTP General Cartographic Transformation\r
- Package", U.S. Geological Survey National Mapping Division, May 1982.\r
-*******************************************************************************/\r
-\r
-Proj4js.Proj.sinu = {\r
-\r
- /* Initialize the Sinusoidal projection\r
- ------------------------------------*/\r
- init: function() {\r
- /* Place parameters in static storage for common use\r
- -------------------------------------------------*/\r
- this.R = 6370997.0; //Radius of earth\r
- },\r
-\r
- /* Sinusoidal forward equations--mapping lat,long to x,y\r
- -----------------------------------------------------*/\r
- forward: function(p) {\r
- var x,y,delta_lon; \r
- var lon=p.x;\r
- var lat=p.y; \r
- /* Forward equations\r
- -----------------*/\r
- delta_lon = Proj4js.common.adjust_lon(lon - this.long0);\r
- x = this.R * delta_lon * Math.cos(lat) + this.x0;\r
- y = this.R * lat + this.y0;\r
-\r
- p.x=x;\r
- p.y=y; \r
- return p;\r
- },\r
-\r
- inverse: function(p) {\r
- var lat,temp,lon; \r
-\r
- /* Inverse equations\r
- -----------------*/\r
- p.x -= this.x0;\r
- p.y -= this.y0;\r
- lat = p.y / this.R;\r
- if (Math.abs(lat) > Proj4js.common.HALF_PI) {\r
- Proj4js.reportError("sinu:Inv:DataError");\r
- }\r
- temp = Math.abs(lat) - Proj4js.common.HALF_PI;\r
- if (Math.abs(temp) > Proj4js.common.EPSLN) {\r
- temp = this.long0+ p.x / (this.R *Math.cos(lat));\r
- lon = Proj4js.common.adjust_lon(temp);\r
- } else {\r
- lon = this.long0;\r
- }\r
- \r
- p.x=lon;\r
- p.y=lat;\r
- return p;\r
- }\r
-};\r
-\r
-\r