123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- #ifndef GISPOI_H
- #define GISPOI_H
- #include <QString>
- #include <iostream>
- #include <QDebug>
- #include <cmath>
- #include "doublepoint.h"
- using namespace std;
-
- const double EARTH_RADIUS = 6372.8;
- const double TWOPI = 2 * acos(-1);
-
- ///
- /// \brief deg2rad
- /// \~English
- /// \param deg angle in degrees
- /// \return angle in radians
- /// \~Spanish
- /// \param deg ángulo en grados
- /// \return angle ángulo en radianes
- ///
- inline double deg2rad(double deg) {
- return deg/360.0 * TWOPI;
- }
-
-
- ///
- /// \brief This class is for representing GIS points of interests.
- ///
-
- class GISPOI {
- private:
- QString name;
- double lat, lon;
-
- public:
-
- /// \fn GISPOI()
- /// \~English
- /// \brief default constructor
- /// \~Spanish
- /// \brief constructor por defecto
- ///
- GISPOI();
-
- /// \fn GISPOI(const QString &s, double latitude, double longitude)
- /// \~English
- /// \brief constructor that sets all the data members.
- /// \~Spanish
- /// \brief constructor que asigna valores a los miembros de data.
- ///
- GISPOI(const QString &s, double latitude, double longitude)
- {name = s; lat = latitude; lon = longitude;}
-
-
- /// \fn double getLat()
- /// \~English
- /// \brief getter for the latitude
- /// \return the latitude value
- /// \~Spanish
- /// \brief "getter" para el valor de latitud
- /// \return el valor de la latitud
- ///
- double getLat() const {return lat;}
-
- /// \fn double getLon()
- /// \~English
- /// \brief getter for the longitude
- /// \return the longitude value
- /// \~Spanish
- /// \brief "getter" para el valor de longitud
- /// \return el valor de la longitud
- ///
- double getLon() const {return lon;}
-
- /// \fn QString getName()
- /// \~English
- /// \brief getter for the name
- /// \return a copy of the name
- /// \~Spanish
- /// \brief "getter" para el nombre
- /// \return una copia del nombre
- ///
- QString getName() const {return name;}
-
- /// \fn setAll(const QString &s, double latitude, double longitude)
- /// \~English
- /// \brief setter for all data members
- /// \~Spanish
- /// \brief "setter" para todos los miembros de datos
- ///
- void setAll(QString s, double latitude, double longitude)
- {name = s; lat = latitude; lon = longitude;}
-
- /// \fn setAll(const string &s, double latitude, double longitude)
- /// \~English
- /// \brief setter for all data members
- /// \~Spanish
- /// \brief "setter" para todos los miembros de datos
- ///
- void setAll(string s, double latitude, double longitude)
- {name = QString::fromStdString(s); lat = latitude; lon = longitude;}
-
-
- /// \fn print()
- /// \~English
- /// \brief a utility function to print the data members
- /// \~Spanish
- /// \brief imprime los valores de los miembros de datos
- ///
- void print() {
- qDebug() << name << " " << lat << " "
- << lon << endl;
- }
-
-
- /// \fn print()
- /// \~English
- /// \brief Given two objects A and B of class GISPOI, uses their
- /// longitudes and latitudes to compute and return their orthodromic
- /// distance in kilometers.
- /// \returns orthodromic distance in kilometers
- /// \~Spanish
- /// \brief Dados dos objetos A y B de clase GISPOI, usa sus
- /// longitudes and latitudes para determinar y devolver distancia
- /// ortodrómica en kilómetros.
- /// \returns distancia ortodrómica en kilómetros
- ///
- double odDistance(const GISPOI &B) const;
-
- };
-
-
-
-
-
- #endif // GISPOI_H
|