[Proj] mercator projection to spherical ellipsoid from WGS84: question
Scott Ellington
scott.ellington at goisc.com
Tue Mar 27 08:10:04 PDT 2007
Hello,
I am trying to use mapserver to reproject some data I have so that it
will display on top of Microsoft's Virtual Earth. VE uses a Mercator
projection with a spherical ellipsoid. Details here:
http://msdn2.microsoft.com/en-us/library/bb259689.aspx
Unfortunately, I am having trouble working out the science behind
getting this reprojection working. I have put together a set of proj
parameters to describe the output VE projection as so:
+proj=merc +ellps=sphere +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0
+x_0=0.0 +y_0=0 +k=1.0 +units=m +no_defs
And my input data is in WGS84 lat/long:
+proj=latlong +datum=WGS84
However, specifying this as the input and output projection causes my
data to shift downward about 10 minutes of latitude. I ran some tests
from the command line:
$ proj +proj=merc +ellps=sphere +a=6378137 +b=6378137 +lat_ts=0.0
+lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +no_defs
-84 30
-9350837.23 3503549.84 <---- This is correct
$ cs2cs +proj=latlong +datum=WGS84 +to +proj=merc +ellps=sphere
+a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0
+units=m +towgs84=0,0,0 +no_defs
-84 30
-9350837.23 3482183.15 -5312.58 <--- Not correct. Y value is
shifted downward
Yet, if I tell proj that my input data is already based on a spherical
ellipsoid, it works:
$ cs2cs +proj=latlong +ellps=sphere +a=6378137 +b=6378137 +lat_ts=0.0
+lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +no_defs +to +proj=merc
+ellps=sphere +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0
+y_0=0 +k=1.0 +units=m +no_defs
-84 30
-9350837.23 3503549.84 0.00 <-- correct
So my workaround has been to specify the input projection in mapserver
as spherical, when it is not, it is WGS84. My question is this: Why is
it necessary to do this? Is there another way to write this cs2cs
reprojection which will allow me to correctly specify my input
projection?
Thanks in advance,
Scott Ellington
More information about the Proj
mailing list