KJB
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LatLong-UTMconversion.h
Go to the documentation of this file.
1 
70 /*
71  * $Id: LatLong-UTMconversion.h 17606 2014-09-26 01:09:51Z predoehl $
72  */
73 
74 #ifndef LATLONGCONV_H_INCLUDED_UOFARIZONA_VISION
75 #define LATLONGCONV_H_INCLUDED_UOFARIZONA_VISION
76 
77 #include <topo_cpp/layer.h>
78 #include <vector>
79 
80 namespace kjb
81 {
82 namespace TopoFusion
83 {
84 
85 void LLtoUTM(
86  int ReferenceEllipsoid,
87  const double Lat,
88  const double Long,
89  pt& utm
90 );
91 
92 #if 0
93 void UTMtoLL(
95  int ReferenceEllipsoid,
96  const pt& utm,
97  double& Lat,
98  double& Long
99 );
100 #endif
101 
102 void UTMtoGPXLL(
103  int ReferenceEllipsoid,
104  const pt& utm,
105  double& Lat,
106  double& Long
107 );
108 
109 
110 void utm_to_lat_long(
111  int ReferenceEllipsoid,
112  const pt& utm,
113  double& Lat,
114  double& Long
115 );
116 
117 
118 void utm_to_lat_long(
119  int,
120  const std::vector<pt>&,
121  std::vector<double>*,
122  std::vector<double>*
123 );
124 
125 
126 double getNewEasting(
127  const pt& utm,
128  int new_zone
129 );
130 
131 
132 char zone_of(int ReferenceEllipspoid, const pt&);
133 
134 
135 #if 0
136 struct Debug_spy_utm_ll_conversion {
137  double eccPrimeSquared, e1, mu, phi1Rad, N1, T1, C1, R1, D, Lat, Long;
138 };
139 
140 extern Debug_spy_utm_ll_conversion spy[2];
141 #endif
142 
149 struct Ellipsoid
150 {
151  int id;
152  const char* ellipsoidName;
156 
158  Ellipsoid(int Id, const char* name, double radius, double ecc, double flat)
159  : id(Id),
160  ellipsoidName(name),
161  EquatorialRadius(radius),
162  eccentricitySquared(ecc),
163  oneOverFlattening(flat)
164  {}
165 };
166 
192 
194 };
195 
196 
204 
205 
206 #if 0
207 struct datum
209 {
210  int id;
211  const char* dName;
212  int ellipsoid;
213  int dx, dy, dz; // offsets relative to WGS-84
214 
216  datum( int Id, const char* name, int el, int Dx, int Dy, int Dz )
217  : id( Id ),
218  dName( name ),
219  ellipsoid( el ),
220  dx( Dx ),
221  dy( Dy ),
222  dz( Dz )
223  {}
224 };
225 #endif
226 
227 
228 } // end namespace TopoFusion
229 } // end namespace kjb
230 
231 
232 #endif
char zone_of(int ReferenceEllipsoid, const pt &p)
return the proper zone number for the given point
Definition: LatLong-UTMconversion.cpp:766
Definition: LatLong-UTMconversion.h:168
double oneOverFlattening
elliptical flattening (related to ecc.)
Definition: LatLong-UTMconversion.h:155
Contains definitions of basic TopoFusion data structures.
const char * ellipsoidName
each ellipsoid gets a descriptive string
Definition: LatLong-UTMconversion.h:152
a TopoFusion data structure used to represent an ellipsoid earth
Definition: LatLong-UTMconversion.h:149
Definition: LatLong-UTMconversion.h:170
void LLtoUTM(int ReferenceEllipsoid, const double Lat, const double Long, pt &utm)
convert Latitude and Longitude to Universal Transverse Mercator coordinates
Definition: LatLong-UTMconversion.cpp:220
Definition: LatLong-UTMconversion.h:174
Definition: LatLong-UTMconversion.h:179
Definition: LatLong-UTMconversion.h:193
Definition: LatLong-UTMconversion.h:189
Definition: LatLong-UTMconversion.h:176
Definition: LatLong-UTMconversion.h:188
Definition: LatLong-UTMconversion.h:177
Definition: LatLong-UTMconversion.h:182
double EquatorialRadius
the equator is still a circle
Definition: LatLong-UTMconversion.h:153
Definition: LatLong-UTMconversion.h:183
Definition: LatLong-UTMconversion.h:185
Ellipsoid(int Id, const char *name, double radius, double ecc, double flat)
ctor fills in all datum fields
Definition: LatLong-UTMconversion.h:158
double getNewEasting(const pt &utm, int new_zone)
return an easting coordinate (from zone) relative to new_zone
Definition: LatLong-UTMconversion.cpp:679
Definition: LatLong-UTMconversion.h:181
Definition: LatLong-UTMconversion.h:173
Definition: LatLong-UTMconversion.h:184
end get the endpoints of the long edges and an image of the long edges for id
Definition: APPgetLargeConnectedEdges.m:96
Definition: LatLong-UTMconversion.h:169
int id
each ellipsoid model gets a unique number
Definition: LatLong-UTMconversion.h:151
void utm_to_lat_long(int ReferenceEllipsoid, const pt &utm, double &Lat, double &Long)
convert Universal Transverse Mercator coordinates to Latitude and Longitude
Definition: LatLong-UTMconversion.cpp:393
Definition: LatLong-UTMconversion.h:171
Definition: LatLong-UTMconversion.h:187
standard for UTM coordinates
Definition: LatLong-UTMconversion.h:172
Definition: LatLong-UTMconversion.h:175
double eccentricitySquared
square eccentricity of longituinal ellipse
Definition: LatLong-UTMconversion.h:154
int validate_ellipsoid_table()
verify that ellipsoid ids correspond to positions in ellipsoid list
Definition: LatLong-UTMconversion.cpp:162
Definition: LatLong-UTMconversion.h:186
also fairly common
Definition: LatLong-UTMconversion.h:178
D
Definition: APPgetLargeConnectedEdges.m:106
Definition: LatLong-UTMconversion.h:180
void UTMtoGPXLL(int ReferenceEllipsoid, const pt &utm, double &Lat, double &Long)
converts Universal Transverse Mercator coordinates coords to Latitude and Longitude.
Definition: LatLong-UTMconversion.cpp:627
ELLIPSOID_ID
Definition: LatLong-UTMconversion.h:167
Definition: LatLong-UTMconversion.h:191
this is the most popular choice
Definition: LatLong-UTMconversion.h:190