<div dir="ltr">Please disregard. Found that I needed to include the proper lat_1 and lat_2 values. Works like a champ.<div><br></div><div>Now trying to make it work in reverse...</div></div><div class="gmail_extra"><br><br>
<div class="gmail_quote">On Mon, Jun 17, 2013 at 6:52 PM, Steven Sokol <span dir="ltr"><<a href="mailto:steven.sokol@gmail.com" target="_blank">steven.sokol@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Greetings.  I'm working with maps provided by the FAA* which include a world file and some meta data. I'm trying to work out how to convert a given lat/lon to a pixel coordinate on the map. I seem to be having some difficulty converting the map metadata into a valid constructor.  Here's the meta data I have:<div>

<br></div><div><dt style="font-size:medium;font-family:Times"><em>Spatial_Reference_Information:</em></dt><dd style="font-size:medium;font-family:Times"><dl><dt><em>Horizontal_Coordinate_System_Definition:</em></dt>
<dd><dl><dt><em>Planar:</em></dt><dd><dl><dt><em>Map_Projection:</em></dt><dd><dl><dt><em>Map_Projection_Name:</em> Lambert Conformal Conic</dt><dt><em>Lambert_Conformal_Conic:</em></dt><dd><dl><dt><em>Standard_Parallel:</em> 33.330000</dt>

<dt><em>Standard_Parallel:</em> 38.660000</dt><dt><em>Longitude_of_Central_Meridian:</em> -93.470000</dt><dt><em>Latitude_of_Projection_Origin:</em> 38.167000</dt><dt><em>False_Easting:</em> 0.000000</dt><dt><em>False_Northing:</em> 0.000000</dt>

</dl></dd></dl></dd><dt><em>Planar_Coordinate_Information:</em></dt><dd><dl><dt><em>Planar_Coordinate_Encoding_Method:</em> row and column</dt><dt><em>Coordinate_Representation:</em></dt><dd><dl><dt><em>Abscissa_Resolution:</em> 63.464794</dt>

<dt><em>Ordinate_Resolution:</em> 63.464794</dt></dl></dd><dt><em>Planar_Distance_Units:</em> meters</dt></dl></dd></dl></dd><dt><em>Geodetic_Model:</em></dt><dd><dl><dt><em>Horizontal_Datum_Name:</em> North American Datum of 1983</dt>

<dt><em>Ellipsoid_Name:</em> Geodetic Reference System 80</dt><dt><em>Semi-major_Axis:</em> 6378137.000000</dt><dt><em>Denominator_of_Flattening_Ratio:</em> 298.257222</dt><dt><br></dt><dt><br></dt></dl></dd></dl></dd></dl>

</dd><div>And here is the constructor I created:</div><div><br></div><div><font face="courier new, monospace">Proj4js.defs["EPSG:9999"] = "+proj=lcc +lat_0=38.167000 +lon_0=-93.470000 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs";</font><br>

</div><div><br></div><div><br></div><div>Here is the data from the world file:</div><div><br></div><div><div>63.4647940000</div><div>0.0000000000</div><div>0.0000000000</div><div>-63.4647940000</div><div>-387637.9055536929</div>

<div>-24695.2385093325</div></div><div><br></div><div>And here is the code** I'm running:</div><div><br></div><div><div><font face="courier new, monospace"><SCRIPT type="text/javascript"></font></div>
<div>
<font face="courier new, monospace">// Put your projection definition here.</font></div><div><font face="courier new, monospace">Proj4js.defs["EPSG:9999"] = "+proj=lcc +lat_0=38.167000 +lon_0=-93.470000 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs";</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">var A = 63.4647940000,</font></div><div><font face="courier new, monospace">    D = 0.00000000000,</font></div><div><font face="courier new, monospace">    B = 0.00000000000,</font></div>

<div><font face="courier new, monospace">    E = -63.4647940000,</font></div><div><font face="courier new, monospace">    C = -387637.9055536929,</font></div><div><font face="courier new, monospace">    F = -24695.2385093325;</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">function frompixel(px, py) {</font></div><div><font face="courier new, monospace">    px += 0.5; // Add a half-pixel offset to get the coordinates of the centre of the pixel.</font></div>

<div><font face="courier new, monospace">    py += 0.5;</font></div><div><font face="courier new, monospace">    return {x : A*px + B*py + C, y: D*px + E*py + F};</font></div><div><font face="courier new, monospace">}</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">function tolatlong(x, y) {</font></div><div><font face="courier new, monospace">    var src = new Proj4js.Proj('EPSG:9999'); // Same code as you defined above. Alternatively, let proj4js get the definition from <a href="http://spatialreference.org" target="_blank">spatialreference.org</a></font></div>

<div><font face="courier new, monospace">    var dest = new Proj4js.Proj('EPSG:4326');</font></div><div><font face="courier new, monospace">    var p = frompixel(x, y);</font></div><div><font face="courier new, monospace"><br>

</font></div><div><font face="courier new, monospace">    document.write('From coordinates: ');</font></div><div><font face="courier new, monospace">    document.writeln(p.x, ',', p.y);</font></div><div><font face="courier new, monospace"><br>

</font></div><div><font face="courier new, monospace">    // This is the bit that does the transformation from map coordinates to lat/long.</font></div><div><font face="courier new, monospace">    Proj4js.transform(src, dest, p);</font></div>

<div><font face="courier new, monospace">    document.write('To lat/long: ');</font></div><div><font face="courier new, monospace">    document.writeln(p.x, ',', p.y);</font></div><div><font face="courier new, monospace">}</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">tolatlong(3000, 2000);</font></div><div><font face="courier new, monospace"></SCRIPT></font></div></div><div><br></div>

<div>Unfortunately, this generates an error:</div><div><br></div><div><font face="courier new, monospace">phi2z has NoConvergence</font><br></div><div><br></div><div>And the unlikely results:</div><div><br></div><div><span style="font-size:medium;font-family:Times">From coordinates: -197211.7911566929,-151656.55890633247 To lat/long: -11299403.303493915,-8689280.760810006</span><br>

</div><div><br></div><div>Any suggestions?</div><div><br></div><div><br></div><div>* You can download the sectional chart I'm using here: <a href="http://avn.faa.gov/content/aeronav/sectional_files/Kansas_City_90.zip" target="_blank">http://avn.faa.gov/content/aeronav/sectional_files/Kansas_City_90.zip</a></div>

<div><br></div><div>** Original found here: <a href="http://gis.stackexchange.com/questions/8430/convert-x-y-position-in-georeferenced-image-with-world-file-to-longitude-lat" target="_blank">http://gis.stackexchange.com/questions/8430/convert-x-y-position-in-georeferenced-image-with-world-file-to-longitude-lat</a></div>
<span class="HOEnZb"><font color="#888888">
<div><br></div>-- <br>Steven Sokol<br><div>408 Camelot Drive</div><div>Liberty, MO 64068<br><br></div><div>mobile: +1 816-806-8844<br>fax: +1 816-817-0441<br><br></div>
</font></span></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Steven Sokol<br><div>408 Camelot Drive</div><div>Liberty, MO 64068<br><br></div><div>mobile: +1 816-806-8844<br>fax: +1 816-817-0441<br><br></div>
</div>