89 lines
2.6 KiB
C++
Executable File
89 lines
2.6 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* Interface-Implementation of Map
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
// Own
|
|
#include "situation_map_types.h"
|
|
|
|
|
|
// ESRI
|
|
|
|
|
|
// Qt
|
|
#include <QString>
|
|
|
|
|
|
namespace Esri
|
|
{
|
|
namespace ArcGISRuntime
|
|
{
|
|
class Point;
|
|
}
|
|
}
|
|
|
|
namespace SituationMap
|
|
{
|
|
|
|
/**
|
|
* @brief The CoordTranslationFunctor is a base class translating between
|
|
* the GeographicCoordinats (WGS84 - EPSG:4326) and the
|
|
* EsriMap working on map coordinates.
|
|
*
|
|
* Forward (geographicToMap):
|
|
* Geo (lon, lat) to map.
|
|
*
|
|
* Backward (mapToGeographic):
|
|
* Map to Geo (lon, lat).
|
|
*/
|
|
class CoordTranslationFunctor
|
|
{
|
|
public:
|
|
/*! \name Construction, Destruction */
|
|
//@{
|
|
explicit CoordTranslationFunctor() = default; ///< Contructor
|
|
virtual ~CoordTranslationFunctor() = default; ///< Destructor
|
|
//@}
|
|
|
|
/*! \name Complete translation */
|
|
//@{
|
|
Q_REQUIRED_RESULT virtual QPointF geographicToMap(const double lon, const double lat) const = 0; ///< Forward: geographic coord to mapCoord, in radian
|
|
Q_REQUIRED_RESULT virtual QPointF mapToGeographic(const double x, const double y) const = 0; ///< Backward: mapCoord to geographic Coord
|
|
|
|
Q_REQUIRED_RESULT virtual QPointF geographicToMap(const QPointF &coord) const = 0; ///< Forward: geographic coord to mapCoord
|
|
Q_REQUIRED_RESULT virtual QPointF mapToGeographic(const QPointF &coord) const = 0; ///< Backward: mapCoord to geographic Coord
|
|
|
|
Q_REQUIRED_RESULT virtual QPointF geographicToMap(const Esri::ArcGISRuntime::Point &coord) const = 0; ///< Forward: geographic coord to mapCoord
|
|
Q_REQUIRED_RESULT virtual QPointF mapToGeographic(const Esri::ArcGISRuntime::Point &coord) const = 0; ///< Backward: mapCoord to geographic Coord
|
|
|
|
Q_REQUIRED_RESULT virtual Point3D geographicToMap(const Point3D &point3D) const = 0; ///< Forward: geographic coord to mapCoord
|
|
Q_REQUIRED_RESULT virtual Point3D mapToGeographic(const Point3D &point3D) const = 0; ///< Backward: mapCoord to geographic Coord
|
|
|
|
Q_REQUIRED_RESULT virtual bool mapIsGeographic() const = 0;
|
|
|
|
virtual void geographicToUtm(const double referenceLon, QList<QPointF> &points) const = 0; ///< tanslate to proper utm coordinate system
|
|
virtual void utmToGeographic(const double referenceLon, QList<QPointF> &points) const = 0; ///< translate back to goegraphic coordiante system
|
|
|
|
//@}
|
|
|
|
/*! \name For statistic or tests */
|
|
//@{
|
|
virtual int projectionCounter() const = 0;
|
|
virtual void resetProjectionCounter() = 0;
|
|
//@}
|
|
|
|
};
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
} // namespace SituationMap
|