[Proj] pj_transform function
Sandeep Kumar Jakkaraju
sandeepkumar.jakkaraju at gmail.com
Sat Oct 7 01:24:41 EDT 2006
I am doing this ....
I have lat/lon of Top Left Corner of the Map and Bottom Right Corner of The
iam converting them to projected X,Y using this projection defintion
World Mercator <54004> +proj=merc +latts=0 +lon0=0 +k=1.000000 +x0=0
+y0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <>
( I have found on some site that Google Maps use this projection !!)
tl_lat = 42.8483;
tl_lon = -74.2935;
br_lat = 42.3813;
br_lon = -73.6509;
using pj_transform of proj4.. iam converting them to X,Y.
top left xy
-8270314.5893 , 5259843.0071
btm right xy
-8198780.6845 , 5189458.4882
I calculate the Centre cX,cY using the top left X,Y and Btm right X,Y...
The Size of the Image I have generated from the Map is (1031,801)...
width = absolute value of (btm right X - top left X)
height = absolute value of (btm right Y - top left Y)
Now I am trying to get the pixel x,y from the projected X,Y using this
px = 515.5 + (1031/width)*(X-cX);
py = 400.5 - (801/height)*(Y-cY);
This gives correct pixels if i give top left or bottom right or the centre
But for some point inside the Image ...
the calcualted pixel X is some 2/3 pixels away from actual pixel X
the calcualted pixel Y is some 8/10 pixels away from actual pixel Y
where am I going wrong ... is the projection iam using correct for such
Thanks in advance.
On 10/6/06, Gerald I. Evenden <gerald.evenden at verizon.mail> wrote:
> On Friday 06 October 2006 4:38 am, Hugo Tyson wrote:
> > proj-bounces at lists.maptools.org <> wrote:
> > > I want to transform ... this lat/lon 39.739/-104.985...
> > > to world mercator project ..with the defintition
> > >
> > > World Mercator <54004> +proj=merc +latts=0 +lon0=0
> > > +k=1.000000 +x0=0 +y0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <>
> > >
> > > but the method gives an "error"....
> > >
> > > this method works fine if i give lat/lon say 42.4182,-74.2643
> > I've not heard of "world mercator", but looking at the parameters
> > it's projecting into a plane tangent to the sphere at lat 0, lon 0.
> > So it only works for longitudes from -90 to +90 (though these map
> > to infinities in the projected plane).
> > Your example of -104 longitude is around the back of the earth,
> > on the "far side" from the projection plane. Therefore a
> > line from the origin through the point never intersects the
> > projection plane, so no result can be calculated. Hence your
> > error. Lon -74 is in range, so it's OK.
> Excuse me for jumping into the middle of this discussion, but Mercator and
> normal proj functioning span the range of +-180 degrees longitude. The
> of the cylindrical projection projection is "unwrapped" from a cut on the
> projection cylinder opposite the longitude of the central meridian (CM) or
> 180 degrees from the CM. There is no such thing as the '"far side"' of
> The following is an example:
> gie at charon:~$ lproj +proj=merc +ellps=WGS84
> -104.985 39.739
> -11686876.74 4800765.45
> -74.2643 42.4182
> -8267064.06 5195000.64
> gie at charon:~$
> All the other parameters in the original problem are superfluous as they
> default values of proj/lproj. The datum option is not part of the
> Proj mailing list
> Proj at lists.maptools.org
Sandeep Kumar Jakkaraju
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Proj