OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Enumerations | Functions
ossimEpsgProjectionDatabase.cpp File Reference
#include <ossim/projection/ossimEpsgProjectionDatabase.h>
#include <ossim/projection/ossimStatePlaneProjectionInfo.h>
#include <ossim/base/ossimKeywordNames.h>
#include <ossim/base/ossimCommon.h>
#include <ossim/projection/ossimUtmProjection.h>
#include <ossim/projection/ossimEquDistCylProjection.h>
#include <ossim/projection/ossimTransMercatorProjection.h>
#include <ossim/projection/ossimMercatorProjection.h>
#include <ossim/projection/ossimOrthoGraphicProjection.h>
#include <ossim/projection/ossimNewZealandMapGridProjection.h>
#include <ossim/projection/ossimGoogleProjection.h>
#include <ossim/projection/ossimLambertConformalConicProjection.h>
#include <ossim/projection/ossimCassiniProjection.h>
#include <ossim/projection/ossimAlbersProjection.h>
#include <ossim/projection/ossimUpsProjection.h>
#include <ossim/base/ossimEpsgDatumFactory.h>
#include <ossim/base/ossimDatumFactory.h>
#include <ossim/base/ossimDatumFactoryRegistry.h>
#include <ossim/base/ossimPreferences.h>
#include <ossim/projection/ossimMapProjectionFactory.h>
#include <ossim/base/ossimException.h>
#include <cmath>

Go to the source code of this file.

Enumerations

enum  {
  A_CODE = 0, A_NAME, A_PROJ_TYPE, A_UNITS,
  A_DATUM_CODE, A_DATUM_NAME, A_ELLIPSOID_NAME, A_FALSE_EASTING,
  A_NAT_ORG_LAT, A_FALSE_NORTHING, A_NAT_ORG_LON, A_NAT_ORG_SCALE,
  A_INIT_LINE_AZ, A_PROJ_CTR_LAT, A_PROJ_CTR_NORTHING, A_RECT_TO_SKEW_ANGLE,
  A_INIT_LINE_SCALE, A_PROJ_CTR_EASTING, A_PROJ_CTR_LON, A_PSEUDO_STD_PARL_1,
  A_PSEUDO_STD_PARL_1_SCALE, A_ORG_LON, A_STD_PARL_2_LAT, A_FALSE_ORG_LAT,
  A_FALSE_ORG_LON, A_STD_PARL_1_LAT, A_FALSE_ORG_NORTHING, A_FALSE_ORG_EASTING,
  A_STD_PARL_LAT, A_TOPOCTR_HGT, A_TOPOCTR_LAT, A_TOPOCTR_Z,
  A_TOPOCTR_Y, A_TOPOCTR_X, A_VIEWPOINT_H, A_INIT_LON,
  A_ZONE_WIDTH, A_NUM_FIELDS
}
 
enum  {
  B_NAME = 0, B_CODE, B_PROJ_TYPE, B_PARAM1,
  B_PARAM2, B_PARAM3, B_PARAM4, B_FALSE_EASTING,
  B_FALSE_NORTHING, B_UNITS, B_DATUM_CODE, B_NUM_FIELDS
}
 
enum  { C_NAME = 0, C_CODE, C_NUM_FIELDS }
 

Functions

double decodeSexagesimalDms (const ossimString &sex_str)
 Converts sexagesimal DMS to decimal degrees. More...
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
A_CODE 
A_NAME 
A_PROJ_TYPE 
A_UNITS 
A_DATUM_CODE 
A_DATUM_NAME 
A_ELLIPSOID_NAME 
A_FALSE_EASTING 
A_NAT_ORG_LAT 
A_FALSE_NORTHING 
A_NAT_ORG_LON 
A_NAT_ORG_SCALE 
A_INIT_LINE_AZ 
A_PROJ_CTR_LAT 
A_PROJ_CTR_NORTHING 
A_RECT_TO_SKEW_ANGLE 
A_INIT_LINE_SCALE 
A_PROJ_CTR_EASTING 
A_PROJ_CTR_LON 
A_PSEUDO_STD_PARL_1 
A_PSEUDO_STD_PARL_1_SCALE 
A_ORG_LON 
A_STD_PARL_2_LAT 
A_FALSE_ORG_LAT 
A_FALSE_ORG_LON 
A_STD_PARL_1_LAT 
A_FALSE_ORG_NORTHING 
A_FALSE_ORG_EASTING 
A_STD_PARL_LAT 
A_TOPOCTR_HGT 
A_TOPOCTR_LAT 
A_TOPOCTR_Z 
A_TOPOCTR_Y 
A_TOPOCTR_X 
A_VIEWPOINT_H 
A_INIT_LON 
A_ZONE_WIDTH 
A_NUM_FIELDS 

Definition at line 39 of file ossimEpsgProjectionDatabase.cpp.

40 {
41  A_CODE = 0, // This is the EPSG code
42  A_NAME,
44  A_UNITS,
62  A_ORG_LON,
76  A_INIT_LON,
78  A_NUM_FIELDS // Not an index, but a count
79 };

◆ anonymous enum

anonymous enum
Enumerator
B_NAME 
B_CODE 
B_PROJ_TYPE 
B_PARAM1 
B_PARAM2 
B_PARAM3 
B_PARAM4 
B_FALSE_EASTING 
B_FALSE_NORTHING 
B_UNITS 
B_DATUM_CODE 
B_NUM_FIELDS 

Definition at line 87 of file ossimEpsgProjectionDatabase.cpp.

◆ anonymous enum

anonymous enum
Enumerator
C_NAME 
C_CODE 
C_NUM_FIELDS 

Definition at line 107 of file ossimEpsgProjectionDatabase.cpp.

108 {
109  C_NAME = 0,
110  C_CODE,
111  C_NUM_FIELDS // Not an index, but a count
112 };

Function Documentation

◆ decodeSexagesimalDms()

double decodeSexagesimalDms ( const ossimString sex_str)

Converts sexagesimal DMS to decimal degrees.

Definition at line 118 of file ossimEpsgProjectionDatabase.cpp.

References ossimString::chars(), ossimString::contains(), ossimString::insert(), sign(), size, ossimString::split(), and ossimString::toDouble().

Referenced by ossimEpsgProjectionDatabase::createProjFromFormatARecord().

119 {
120  if (!sex_str.contains("."))
121  return sex_str.toDouble();
122 
123  double sign = 1.0;
124  if (sex_str.chars()[0] == '-')
125  sign = -1.0;
126 
127  double dsex, msex, ssex;
128  std::vector<ossimString> splitstr = sex_str.split(".");
129  dsex = splitstr[0].toDouble();
130 
131  if (splitstr.size() < 2)
132  return dsex;
133 
134  const char* MMSSssstr = splitstr[1].chars();
135  unsigned int str_size = (unsigned int) splitstr[1].size();
136  char minstr[] = "00";
137  ossimString secstr ("00.");
138  minstr[0] = MMSSssstr[0];
139  if (str_size > 1)
140  {
141  minstr[1] = MMSSssstr[1];
142  if (str_size > 2)
143  {
144  secstr = &(MMSSssstr[2]);
145  if (str_size == 3)
146  secstr += ossimString("0.");
147  else if (str_size > 4)
148  secstr.insert(2, ".");
149  }
150  }
151  msex = ossimString(minstr).toDouble();
152  ssex = secstr.toDouble();
153  dsex += sign*(msex + ssex/60.0)/60.0;
154  return dsex;
155 }
Real sign(Real x, Real y)
Definition: newmatrm.h:108
bool contains(char aChar) const
Definition: ossimString.h:58
void split(std::vector< ossimString > &result, const ossimString &separatorList, bool skipBlankFields=false) const
Splits this string into a vector of strings (fields) using the delimiter list specified.
yy_size_t size
const char * chars() const
For backward compatibility.
Definition: ossimString.h:77
double toDouble() const