1 // Class encapulating the metar station information
3 // METAR station information is kept in this file:
4 // http://www.nws.noaa.gov/pub/stninfo/nsd_cccc.gz
5 // http://www.nws.noaa.gov/pub/stninfo/nsd_cccc.txt
15 #include <simgear/math/point3d.hxx>
16 #include <simgear/math/polar3d.hxx>
17 //using namespace std;
19 class CMetarStationDB;
26 unsigned long m_number;
29 std::string m_country;
31 Point3D m_locationPolar;
32 Point3D m_upperLocationPolar;
33 Point3D m_locationCart;
34 Point3D m_upperLocationCart;
41 double decodeDMS( char *b );
55 std::string &ID() { return m_ID; }
56 unsigned long number() { return m_number; }
57 std::string &name() { return m_name; }
58 std::string &state() { return m_state; }
59 std::string &country() { return m_country; }
60 int region() { return m_region; }
61 unsigned int Altitude() { //Returns the stations height above MSL in M.
63 Point3D &locationPolar() { return m_locationPolar; }
64 Point3D &upperLocationPolar() { return m_upperLocationPolar; }
65 Point3D &locationCart() { return m_locationCart; }
66 Point3D &upperLocationCart() { return m_upperLocationCart; }
67 char pFlag() { return m_pFlag; }
70 friend std::ostream& operator << ( std::ostream&, const CMetarStation& );
78 const CMetarStation &rNewObj );
79 // Copy constructor. Not implemented.
81 CMetarStation &operator =(
82 const CMetarStation &rObj );
83 // Assignment operator. Not implemented.
85 friend CMetarStationDB;
93 std::string databasePath; //The path of the database file.
94 std::map<std::string , CMetarStation *> METAR_Stations;
95 CMetarStation * bestStation;
98 CMetarStation *find( std::string stationID );
99 CMetarStation * find( Point3D locationCart );
100 CMetarStationDB(const char * dbFile);