#1 Origin Latitude for TM

shptrans
open
nobody
General (1)
5
2005-10-15
2005-10-15
Ron Parker
No

This isn't a complete patch, but based on some math I
found at
http://www.posc.org/Epicentre.2_2/DataModel/ExamplesofUsage/eu_cs34h.html
I have determined that making these changes to
tmerc.cpp lets me use a nonzero origin latitude when
converting from TM (in my case, Illinois East State
Plane) to geo:

for (int coordIdx=0; coordIdx<count;
++coordIdx,xy+=2) {
x = xy[0] - x0;
y = xy[1] - y0;

| M0 = a*(A0*lat0-A2*sin(2*lat0)+
|
A4*sin(4*lat0)-A6*sin(6*lat0)+A8*sin(8*lat0));
| M = M0 + y / k0;

// This is how Chuck calculated phi1.
phi1 = mu + (3*e1/2-27*e1*e1*e1/32)*sin(2*mu)
+ (21*e1*e1/16-55*e1*e1*e1*e1/32)*sin(4*mu)
+(151*e1*e1*e1/96)*sin(6*mu);

In my case, I set lat0 to a constant, but presumably
one could add command-line options to make the solution
more general. I see that the same site has the inverse
math, but since I only needed to do the TM->Geo
conversion, I didn't investigate further.

Thanks for the great program; it made my job of
converting some Chicago transit maps much easier.

Discussion