<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"Myriad Pro";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hi all,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’m running into problems using Proj4js to transform coordinates between ESPG:900916 (“web Mercator”) and EPSG:26986 (Massachusetts mainland state plane NAD83, meters) and vice-versa. The results I’m getting are way off.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’ve constructed a minimal test case that illustrates the problem:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><b>[ BEGIN CODE]<o:p></o:p></b></p><p class=MsoNormal>function initialize() {      <o:p></o:p></p><p class=MsoNormal>                Proj4js.reportError = function(msg) { alert('Proj4 error: ' + msg); } ;<o:p></o:p></p><p class=MsoNormal>                <o:p></o:p></p><p class=MsoNormal>                // Massachusetts State Plane NAD83, meters<o:p></o:p></p><p class=MsoNormal>                var oDestPrj = new Proj4js.Proj('EPSG:26986');<o:p></o:p></p><p class=MsoNormal>                // Google "web mercator"<o:p></o:p></p><p class=MsoNormal>                var oSrcPrj = new Proj4js.Proj('EPSG:900913');    <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                // A point location in web mercator.<o:p></o:p></p><p class=MsoNormal>                var myPoint = { x: -73.21132, y: 42.71387 };<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                // Project my point to EPSG:26986.<o:p></o:p></p><p class=MsoNormal>                Proj4js.transform(oSrcPrj, oDestPrj, myPoint);<o:p></o:p></p><p class=MsoNormal>                <o:p></o:p></p><p class=MsoNormal>                // Result should be (approximately) 59819.70, 941765.22<o:p></o:p></p><p class=MsoNormal>                document.write("x : " + myPoint.x + " y : " + myPoint.y);<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal><b>[ END CODE]<o:p></o:p></b></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>In the example above, the input point { x: -73.21132, y: 42.71387 } is transformed into { x : 9220379.520106662 y : -186260.82310388796 }.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’m using a newly downloaded copy of Proj4js 1.1.0, the SRS definition for EPSG:900913 that came with the Proj4js download, and the SRS definition for EPSG:26986 downloaded from <a href="http://www.spatialreference.org">www.spatialreference.org</a>.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’ve either stumbled upon a bug, or am doing something incredibly bone-headed. <o:p></o:p></p><p class=MsoNormal>Any help that might be offered would be much appreciated.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks,<br>Ben<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><b><span style='font-size:9.0pt;color:black'>Benjamin Krepp</span></b><b><span style='font-size:9.0pt;color:#1F9000'> </span></b><span style='font-size:9.0pt;color:#1F9000'> |  </span><span style='font-size:9.0pt;color:black'>Manager of GIS and IT</span><span style='font-size:10.5pt;color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;color:#1F9000'>CENTRAL TRANSPORTATION PLANNING STAFF</span><span style='font-size:10.5pt;color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;color:black'>617.973.7137</span><b><span style='font-size:9.0pt;color:#1F9000'> </span></b><span style='font-size:9.0pt;color:#1F9000'> | </span><u><span style='font-size:9.0pt;color:blue'><a href="mailto:bkrepp@ctps.org">bkrepp@ctps.org</a></span></u><span style='font-size:10.5pt;color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;color:black'><a href="http://www.ctps.org/bostonmpo"><span style='color:blue'>www.ctps.org/bostonmpo</span></a></span><span style='font-size:10.5pt;color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Myriad Pro";color:black'><img border=0 width=233 height=73 id="Picture_x0020_1" src="cid:image001.png@01CD967D.A867B660" alt="Description: Description: cid:5F54AF76-729F-48CE-9BEE-5E4887E4DA63"></span><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>