/usr/share/doc/geographiclib/html/Gnomonic_8hpp_source.html is in geographiclib-tools 1.8-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>GeographicLib: Gnomonic.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>File Members</span></a></li>
</ul>
</div>
<div class="navpath">
<ul>
<li><a class="el" href="dir_f624aa4962e92581e36e10adf24cfc84.html">include</a> </li>
<li><a class="el" href="dir_0f324d7550514966066ff24c6d4b8a42.html">GeographicLib</a> </li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<h1>Gnomonic.hpp</h1> </div>
</div>
<div class="contents">
<a href="Gnomonic_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/**</span>
<a name="l00002"></a>00002 <span class="comment"> * \file Gnomonic.hpp</span>
<a name="l00003"></a>00003 <span class="comment"> * \brief Header for GeographicLib::Gnomonic class</span>
<a name="l00004"></a>00004 <span class="comment"> *</span>
<a name="l00005"></a>00005 <span class="comment"> * Copyright (c) Charles Karney (2010, 2011) <charles@karney.com> and licensed</span>
<a name="l00006"></a>00006 <span class="comment"> * under the LGPL. For more information, see</span>
<a name="l00007"></a>00007 <span class="comment"> * http://geographiclib.sourceforge.net/</span>
<a name="l00008"></a>00008 <span class="comment"> **********************************************************************/</span>
<a name="l00009"></a>00009
<a name="l00010"></a>00010 <span class="preprocessor">#if !defined(GEOGRAPHICLIB_GNOMONIC_HPP)</span>
<a name="l00011"></a><a class="code" href="Gnomonic_8hpp.html#af85f3f443620d568666f526ee193308a">00011</a> <span class="preprocessor"></span><span class="preprocessor">#define GEOGRAPHICLIB_GNOMONIC_HPP "$Id: Gnomonic.hpp 6968 2011-02-19 15:58:56Z karney $"</span>
<a name="l00012"></a>00012 <span class="preprocessor"></span>
<a name="l00013"></a>00013 <span class="preprocessor">#include "<a class="code" href="Geodesic_8hpp.html" title="Header for GeographicLib::Geodesic class.">GeographicLib/Geodesic.hpp</a>"</span>
<a name="l00014"></a>00014 <span class="preprocessor">#include "<a class="code" href="GeodesicLine_8hpp.html" title="Header for GeographicLib::GeodesicLine class.">GeographicLib/GeodesicLine.hpp</a>"</span>
<a name="l00015"></a>00015 <span class="preprocessor">#include "<a class="code" href="Constants_8hpp.html" title="Header for GeographicLib::Constants class.">GeographicLib/Constants.hpp</a>"</span>
<a name="l00016"></a>00016
<a name="l00017"></a>00017 <span class="keyword">namespace </span>GeographicLib {
<a name="l00018"></a>00018 <span class="comment"></span>
<a name="l00019"></a>00019 <span class="comment"> /**</span>
<a name="l00020"></a>00020 <span class="comment"> * \brief %Gnomonic Projection.</span>
<a name="l00021"></a>00021 <span class="comment"> *</span>
<a name="l00022"></a>00022 <span class="comment"> * %Gnomonic projection centered at an arbitrary position \e C on the</span>
<a name="l00023"></a>00023 <span class="comment"> * ellipsoid. This projection is derived in Section 13 of</span>
<a name="l00024"></a>00024 <span class="comment"> * - C. F. F. Karney,</span>
<a name="l00025"></a>00025 <span class="comment"> * <a href="http://arxiv.org/abs/1102.1215">Geodesics</span>
<a name="l00026"></a>00026 <span class="comment"> * on an ellipsoid of revolution</a>,</span>
<a name="l00027"></a>00027 <span class="comment"> * Feb. 2011;</span>
<a name="l00028"></a>00028 <span class="comment"> * preprint</span>
<a name="l00029"></a>00029 <span class="comment"> * <a href="http://arxiv.org/abs/1102.1215">arxiv:1102.1215</a>.</span>
<a name="l00030"></a>00030 <span class="comment"> * .</span>
<a name="l00031"></a>00031 <span class="comment"> * The projection of \e P is defined as follows: compute the</span>
<a name="l00032"></a>00032 <span class="comment"> * geodesic line from \e C to \e P; compute the reduced length \e m12,</span>
<a name="l00033"></a>00033 <span class="comment"> * geodesic scale \e M12, and \e rho = \e m12/\e M12; finally \e x = \e rho</span>
<a name="l00034"></a>00034 <span class="comment"> * sin \e azi1; \e y = \e rho cos \e azi1, where \e azi1 is the azimuth of</span>
<a name="l00035"></a>00035 <span class="comment"> * the geodesic at \e C. The Gnomonic::Forward and Gnomonic::Reverse methods</span>
<a name="l00036"></a>00036 <span class="comment"> * also return the azimuth \e azi of the geodesic at \e P and reciprocal</span>
<a name="l00037"></a>00037 <span class="comment"> * scale \e rk in the azimuthal direction. The scale in the radial direction</span>
<a name="l00038"></a>00038 <span class="comment"> * if 1/\e rk<sup>2</sup>.</span>
<a name="l00039"></a>00039 <span class="comment"> *</span>
<a name="l00040"></a>00040 <span class="comment"> * For a sphere, \e rho is reduces to \e a tan(\e s12/\e a), where \e s12 is</span>
<a name="l00041"></a>00041 <span class="comment"> * the length of the geodesic from \e C to \e P, and the gnomonic projection</span>
<a name="l00042"></a>00042 <span class="comment"> * has the property that all geodesics appear as straight lines. For an</span>
<a name="l00043"></a>00043 <span class="comment"> * ellipsoid, this property holds only for geodesics interesting the centers.</span>
<a name="l00044"></a>00044 <span class="comment"> * However geodesic segments close to the center are approximately straight.</span>
<a name="l00045"></a>00045 <span class="comment"> *</span>
<a name="l00046"></a>00046 <span class="comment"> * Consider a geodesic segment of length \e l. Let \e T be the point on the</span>
<a name="l00047"></a>00047 <span class="comment"> * geodesic (extended if necessary) closest to \e C the center of the</span>
<a name="l00048"></a>00048 <span class="comment"> * projection and \e t be the distance \e CT. To lowest order, the maximum</span>
<a name="l00049"></a>00049 <span class="comment"> * deviation (as a true distance) of the corresponding gnomonic line segment</span>
<a name="l00050"></a>00050 <span class="comment"> * (i.e., with the same end points) from the geodesic is<br></span>
<a name="l00051"></a>00051 <span class="comment"> * <br></span>
<a name="l00052"></a>00052 <span class="comment"> * (\e K(T) - \e K(C)) \e l<sup>2</sup> \e t / 32.<br></span>
<a name="l00053"></a>00053 <span class="comment"> * <br></span>
<a name="l00054"></a>00054 <span class="comment"> * where \e K is the Gaussian curvature.</span>
<a name="l00055"></a>00055 <span class="comment"> *</span>
<a name="l00056"></a>00056 <span class="comment"> * This result applies for any surface. For an allipsoid of revolution,</span>
<a name="l00057"></a>00057 <span class="comment"> * consider all geodesics whose end points are within a distance \e r of \e</span>
<a name="l00058"></a>00058 <span class="comment"> * C. For a given \e r, the deviation is maximum when the latitude of \e C</span>
<a name="l00059"></a>00059 <span class="comment"> * is 45<sup>o</sup>, when endpoints are a distance \e r away, and when their</span>
<a name="l00060"></a>00060 <span class="comment"> * azimuths from the center are +/- 45<sup>o</sup> or +/- 135<sup>o</sup>.</span>
<a name="l00061"></a>00061 <span class="comment"> * To lowest order in \e r and the flattening \e f, the deviation is \e f</span>
<a name="l00062"></a>00062 <span class="comment"> * (\e r/2\e a)<sup>3</sup> \e r.</span>
<a name="l00063"></a>00063 <span class="comment"> *</span>
<a name="l00064"></a>00064 <span class="comment"> * The conversions all take place using a Geodesic object (by default</span>
<a name="l00065"></a>00065 <span class="comment"> * Geodesic::WGS84). For more information on geodesics see \ref geodesic.</span>
<a name="l00066"></a>00066 <span class="comment"> *</span>
<a name="l00067"></a>00067 <span class="comment"> * <b>CAUTION:</b> The definition of this projection for a sphere is</span>
<a name="l00068"></a>00068 <span class="comment"> * standard. However, there is no standard for how it should be extended to</span>
<a name="l00069"></a>00069 <span class="comment"> * an ellipsoid. The choices are:</span>
<a name="l00070"></a>00070 <span class="comment"> * - Declare that the projection is undefined for an ellipsoid.</span>
<a name="l00071"></a>00071 <span class="comment"> * - Project to a tangent plane from the center of the ellipsoid. This</span>
<a name="l00072"></a>00072 <span class="comment"> * causes great ellipses to appear as straight lines in the projection;</span>
<a name="l00073"></a>00073 <span class="comment"> * i.e., it generalizes the spherical great circle to a great ellipse.</span>
<a name="l00074"></a>00074 <span class="comment"> * This was proposed by independently by Bowring and Williams in 1997.</span>
<a name="l00075"></a>00075 <span class="comment"> * - Project to the conformal sphere with the constant of integration chosen</span>
<a name="l00076"></a>00076 <span class="comment"> * so that the values of the latitude match for the center point and</span>
<a name="l00077"></a>00077 <span class="comment"> * perform a central projection onto the plane tangent to the conformal</span>
<a name="l00078"></a>00078 <span class="comment"> * sphere at the center point. This causes normal sections through the</span>
<a name="l00079"></a>00079 <span class="comment"> * center point to appear as straight lines in the projection; i.e., it</span>
<a name="l00080"></a>00080 <span class="comment"> * generalizes the spherical great circle to a normal section. This was</span>
<a name="l00081"></a>00081 <span class="comment"> * proposed by I. G. Letoval'tsev, Generalization of the %Gnomonic</span>
<a name="l00082"></a>00082 <span class="comment"> * Projection for a Spheroid and the Principal Geodetic Problems Involved</span>
<a name="l00083"></a>00083 <span class="comment"> * in the Alignment of Surface Routes, Geodesy and Aerophotography (5),</span>
<a name="l00084"></a>00084 <span class="comment"> * 271-274 (1963).</span>
<a name="l00085"></a>00085 <span class="comment"> * - The projection given here. This causes geodesics close to the center</span>
<a name="l00086"></a>00086 <span class="comment"> * point to appear as straight lines in the projection; i.e., it</span>
<a name="l00087"></a>00087 <span class="comment"> * generalizes the spherical great circle to a geodesic.</span>
<a name="l00088"></a>00088 <span class="comment"> **********************************************************************/</span>
<a name="l00089"></a>00089
<a name="l00090"></a><a class="code" href="classGeographicLib_1_1Gnomonic.html">00090</a> <span class="keyword">class </span><a class="code" href="classGeographicLib_1_1Gnomonic.html" title="Gnomonic Projection.">Gnomonic</a> {
<a name="l00091"></a>00091 <span class="keyword">private</span>:
<a name="l00092"></a>00092 <span class="keyword">typedef</span> <a class="code" href="classGeographicLib_1_1Math.html#aeee4778d7cf2f9fb9648efe4911da59d">Math::real</a> real;
<a name="l00093"></a>00093 <span class="keyword">const</span> <a class="code" href="classGeographicLib_1_1Geodesic.html" title="Geodesic calculations">Geodesic</a> _earth;
<a name="l00094"></a>00094 real _a, _f;
<a name="l00095"></a>00095 <span class="keyword">static</span> <span class="keyword">const</span> real eps0, eps;
<a name="l00096"></a>00096 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> numit = 5;
<a name="l00097"></a>00097 <span class="keyword">public</span>:
<a name="l00098"></a>00098 <span class="comment"></span>
<a name="l00099"></a>00099 <span class="comment"> /**</span>
<a name="l00100"></a>00100 <span class="comment"> * Constructor for Gnomonic.</span>
<a name="l00101"></a>00101 <span class="comment"> *</span>
<a name="l00102"></a>00102 <span class="comment"> * @param[in] earth the Geodesic object to use for geodesic calculations.</span>
<a name="l00103"></a>00103 <span class="comment"> * By default this uses the WGS84 ellipsoid.</span>
<a name="l00104"></a>00104 <span class="comment"> **********************************************************************/</span>
<a name="l00105"></a><a class="code" href="classGeographicLib_1_1Gnomonic.html#a2ac973ebbd7aaf18c451b152cd92db99">00105</a> <span class="keyword">explicit</span> <a class="code" href="classGeographicLib_1_1Gnomonic.html#a2ac973ebbd7aaf18c451b152cd92db99">Gnomonic</a>(<span class="keyword">const</span> <a class="code" href="classGeographicLib_1_1Geodesic.html" title="Geodesic calculations">Geodesic</a>& earth = <a class="code" href="classGeographicLib_1_1Geodesic.html#ae918bb7e1555fba38483449cbbac0ca1">Geodesic::WGS84</a>)
<a name="l00106"></a>00106 throw()
<a name="l00107"></a>00107 : _earth(earth)
<a name="l00108"></a>00108 , _a(_earth.<a class="code" href="classGeographicLib_1_1Gnomonic.html#a8598fe6d8c3896fa3fd58d24023f78ee">MajorRadius</a>())
<a name="l00109"></a>00109 , _f(_earth.<a class="code" href="classGeographicLib_1_1Gnomonic.html#a655eff8ef95f92902899459e8a5efe63">InverseFlattening</a>() ?
<a name="l00110"></a>00110 1/std::abs(_earth.<a class="code" href="classGeographicLib_1_1Gnomonic.html#a655eff8ef95f92902899459e8a5efe63">InverseFlattening</a>()) : 0)
<a name="l00111"></a>00111 {}
<a name="l00112"></a>00112 <span class="comment"></span>
<a name="l00113"></a>00113 <span class="comment"> /**</span>
<a name="l00114"></a>00114 <span class="comment"> * Forward projection, from geographic to gnomonic.</span>
<a name="l00115"></a>00115 <span class="comment"> *</span>
<a name="l00116"></a>00116 <span class="comment"> * @param[in] lat0 latitude of center point of projection (degrees).</span>
<a name="l00117"></a>00117 <span class="comment"> * @param[in] lon0 longitude of center point of projection (degrees).</span>
<a name="l00118"></a>00118 <span class="comment"> * @param[in] lat latitude of point (degrees).</span>
<a name="l00119"></a>00119 <span class="comment"> * @param[in] lon longitude of point (degrees).</span>
<a name="l00120"></a>00120 <span class="comment"> * @param[out] x easting of point (meters).</span>
<a name="l00121"></a>00121 <span class="comment"> * @param[out] y northing of point (meters).</span>
<a name="l00122"></a>00122 <span class="comment"> * @param[out] azi azimuth of geodesic at point (degrees).</span>
<a name="l00123"></a>00123 <span class="comment"> * @param[out] rk reciprocal of azimuthal scale at point.</span>
<a name="l00124"></a>00124 <span class="comment"> *</span>
<a name="l00125"></a>00125 <span class="comment"> * \e lat0 and \e lat should be in the range [-90, 90] and \e lon0 and \e</span>
<a name="l00126"></a>00126 <span class="comment"> * lon should be in the range [-180, 360]. The scale of the projection is</span>
<a name="l00127"></a>00127 <span class="comment"> * 1/\e rk<sup>2</sup> in the "radial" direction, \e azi clockwise from</span>
<a name="l00128"></a>00128 <span class="comment"> * true north, and is 1/\e rk in the direction perpendicular to this. If</span>
<a name="l00129"></a>00129 <span class="comment"> * the point lies "over the horizon", i.e., if \e rk <= 0, then NaNs are</span>
<a name="l00130"></a>00130 <span class="comment"> * returned for \e x and \e y (the correct values are returned for \e azi</span>
<a name="l00131"></a>00131 <span class="comment"> * and \e rk). A call to Forward followed by a call to Reverse will return</span>
<a name="l00132"></a>00132 <span class="comment"> * the original (\e lat, \e lon) (to within roundoff) provided the point in</span>
<a name="l00133"></a>00133 <span class="comment"> * not over the horizon.</span>
<a name="l00134"></a>00134 <span class="comment"> **********************************************************************/</span>
<a name="l00135"></a>00135 <span class="keywordtype">void</span> <a class="code" href="classGeographicLib_1_1Gnomonic.html#ab851ea19db5671f8d4a4151820bc6853">Forward</a>(<a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a> lat0, <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a> lon0, <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a> lat, <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a> lon,
<a name="l00136"></a>00136 <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a>& x, <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a>& y, <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a>& azi, <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a>& rk) <span class="keyword">const</span> <span class="keywordflow">throw</span>();
<a name="l00137"></a>00137 <span class="comment"></span>
<a name="l00138"></a>00138 <span class="comment"> /**</span>
<a name="l00139"></a>00139 <span class="comment"> * Reverse projection, from gnomonic to geographic.</span>
<a name="l00140"></a>00140 <span class="comment"> *</span>
<a name="l00141"></a>00141 <span class="comment"> * @param[in] lat0 latitude of center point of projection (degrees).</span>
<a name="l00142"></a>00142 <span class="comment"> * @param[in] lon0 longitude of center point of projection (degrees).</span>
<a name="l00143"></a>00143 <span class="comment"> * @param[in] x easting of point (meters).</span>
<a name="l00144"></a>00144 <span class="comment"> * @param[in] y northing of point (meters).</span>
<a name="l00145"></a>00145 <span class="comment"> * @param[out] lat latitude of point (degrees).</span>
<a name="l00146"></a>00146 <span class="comment"> * @param[out] lon longitude of point (degrees).</span>
<a name="l00147"></a>00147 <span class="comment"> * @param[out] azi azimuth of geodesic at point (degrees).</span>
<a name="l00148"></a>00148 <span class="comment"> * @param[out] rk reciprocal of azimuthal scale at point.</span>
<a name="l00149"></a>00149 <span class="comment"> *</span>
<a name="l00150"></a>00150 <span class="comment"> * \e lat0 should be in the range [-90, 90] and \e lon0 should be in the</span>
<a name="l00151"></a>00151 <span class="comment"> * range [-180, 360]. \e lat will be in the range [-90, 90] and \e lon</span>
<a name="l00152"></a>00152 <span class="comment"> * will be in the range [-180, 180). The scale of the projection is 1/\e</span>
<a name="l00153"></a>00153 <span class="comment"> * rk<sup>2</sup> in the "radial" direction, \e azi clockwise from true</span>
<a name="l00154"></a>00154 <span class="comment"> * north, and is 1/\e rk in the direction perpendicular to this. Even</span>
<a name="l00155"></a>00155 <span class="comment"> * though all inputs should return a valid \e lat and \e lon, it's possible</span>
<a name="l00156"></a>00156 <span class="comment"> * that the procedure fails to converge for very large \e x or \e y; in</span>
<a name="l00157"></a>00157 <span class="comment"> * this case NaNs are returned for all the output arguments. A call to</span>
<a name="l00158"></a>00158 <span class="comment"> * Reverse followed by a call to Forward will return the original (\e x, \e</span>
<a name="l00159"></a>00159 <span class="comment"> * y) (to roundoff).</span>
<a name="l00160"></a>00160 <span class="comment"> **********************************************************************/</span>
<a name="l00161"></a>00161 <span class="keywordtype">void</span> <a class="code" href="classGeographicLib_1_1Gnomonic.html#afccbed660a482ef73d33ad16406ee626">Reverse</a>(<a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a> lat0, <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a> lon0, <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a> x, <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a> y,
<a name="l00162"></a>00162 <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a>& lat, <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a>& lon, <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a>& azi, <a class="code" href="Geod_8cpp.html#a5caf95d46b184d9ca1d3764b3781b3c9">real</a>& rk) <span class="keyword">const</span> <span class="keywordflow">throw</span>();
<a name="l00163"></a>00163 <span class="comment"></span>
<a name="l00164"></a>00164 <span class="comment"> /**</span>
<a name="l00165"></a>00165 <span class="comment"> * Gnomonic::Forward without returning the azimuth and scale.</span>
<a name="l00166"></a>00166 <span class="comment"> **********************************************************************/</span>
<a name="l00167"></a><a class="code" href="classGeographicLib_1_1Gnomonic.html#a2c08cf2bad190ee9ab88f7d877223208">00167</a> <span class="keywordtype">void</span> <a class="code" href="classGeographicLib_1_1Gnomonic.html#ab851ea19db5671f8d4a4151820bc6853">Forward</a>(real lat0, real lon0, real lat, real lon,
<a name="l00168"></a>00168 real& x, real& y) <span class="keyword">const</span> <span class="keywordflow">throw</span>() {
<a name="l00169"></a>00169 real azi, rk;
<a name="l00170"></a>00170 <a class="code" href="classGeographicLib_1_1Gnomonic.html#ab851ea19db5671f8d4a4151820bc6853">Forward</a>(lat0, lon0, lat, lon, x, y, azi, rk);
<a name="l00171"></a>00171 }
<a name="l00172"></a>00172 <span class="comment"></span>
<a name="l00173"></a>00173 <span class="comment"> /**</span>
<a name="l00174"></a>00174 <span class="comment"> * Gnomonic::Reverse without returning the azimuth and scale.</span>
<a name="l00175"></a>00175 <span class="comment"> **********************************************************************/</span>
<a name="l00176"></a><a class="code" href="classGeographicLib_1_1Gnomonic.html#a8700d59a1e244f8dd211e344587dfed3">00176</a> <span class="keywordtype">void</span> <a class="code" href="classGeographicLib_1_1Gnomonic.html#afccbed660a482ef73d33ad16406ee626">Reverse</a>(real lat0, real lon0, real x, real y,
<a name="l00177"></a>00177 real& lat, real& lon) <span class="keyword">const</span> <span class="keywordflow">throw</span>() {
<a name="l00178"></a>00178 real azi, rk;
<a name="l00179"></a>00179 <a class="code" href="classGeographicLib_1_1Gnomonic.html#afccbed660a482ef73d33ad16406ee626">Reverse</a>(lat0, lon0, x, y, lat, lon, azi, rk);
<a name="l00180"></a>00180 }
<a name="l00181"></a>00181 <span class="comment"></span>
<a name="l00182"></a>00182 <span class="comment"> /** \name Inspector functions</span>
<a name="l00183"></a>00183 <span class="comment"> **********************************************************************/</span><span class="comment"></span>
<a name="l00184"></a>00184 <span class="comment"> ///@{</span>
<a name="l00185"></a>00185 <span class="comment"></span><span class="comment"> /**</span>
<a name="l00186"></a>00186 <span class="comment"> * @return \e a the equatorial radius of the ellipsoid (meters). This is</span>
<a name="l00187"></a>00187 <span class="comment"> * the value inherited from the Geodesic object used in the constructor.</span>
<a name="l00188"></a>00188 <span class="comment"> **********************************************************************/</span>
<a name="l00189"></a><a class="code" href="classGeographicLib_1_1Gnomonic.html#a8598fe6d8c3896fa3fd58d24023f78ee">00189</a> <a class="code" href="classGeographicLib_1_1Math.html#aeee4778d7cf2f9fb9648efe4911da59d">Math::real</a> <a class="code" href="classGeographicLib_1_1Gnomonic.html#a8598fe6d8c3896fa3fd58d24023f78ee">MajorRadius</a>() <span class="keyword">const</span> throw() { <span class="keywordflow">return</span> _earth.<a class="code" href="classGeographicLib_1_1Geodesic.html#acd276bb113cfdf3fe59aa43fb3d7289b">MajorRadius</a>(); }
<a name="l00190"></a>00190 <span class="comment"></span>
<a name="l00191"></a>00191 <span class="comment"> /**</span>
<a name="l00192"></a>00192 <span class="comment"> * @return \e r the inverse flattening of the ellipsoid. This is the</span>
<a name="l00193"></a>00193 <span class="comment"> * value inherited from the Geodesic object used in the constructor. A</span>
<a name="l00194"></a>00194 <span class="comment"> * value of 0 is returned for a sphere (infinite inverse flattening).</span>
<a name="l00195"></a>00195 <span class="comment"> **********************************************************************/</span>
<a name="l00196"></a><a class="code" href="classGeographicLib_1_1Gnomonic.html#a655eff8ef95f92902899459e8a5efe63">00196</a> <a class="code" href="classGeographicLib_1_1Math.html#aeee4778d7cf2f9fb9648efe4911da59d">Math::real</a> <a class="code" href="classGeographicLib_1_1Gnomonic.html#a655eff8ef95f92902899459e8a5efe63">InverseFlattening</a>() <span class="keyword">const</span> throw()
<a name="l00197"></a>00197 { <span class="keywordflow">return</span> _earth.<a class="code" href="classGeographicLib_1_1Geodesic.html#ab64c9662ce24d7a658924db0c85f8b2d">InverseFlattening</a>(); }<span class="comment"></span>
<a name="l00198"></a>00198 <span class="comment"> ///@}</span>
<a name="l00199"></a>00199 <span class="comment"></span> };
<a name="l00200"></a>00200
<a name="l00201"></a>00201 } <span class="comment">// namespace GeographicLib</span>
<a name="l00202"></a>00202
<a name="l00203"></a>00203 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Tue Feb 22 2011 for GeographicLib by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>
|