/** * @RDE_HEADER@ * adapting GeISiR source to SituationMap * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include "elevation_map_helper.h" #include #include #include #include #include #include #include class QFileInfo; namespace SituationMap { //------------------------------------------------------------------------------------------------------------ // ElevationMap //------------------------------------------------------------------------------------------------------------ class SITUATIONMAPELEVATIONMAP_EXPORT ElevationMap final { friend class ElevationMapManager; public: ElevationMap() = delete; ElevationMap(const ElevationMap &) = delete; ElevationMap &operator = (const ElevationMap &) = delete; explicit ElevationMap(const QFileInfo &fileInfo); ~ElevationMap(); bool waitForInitialization(); bool isValid() const; QString filename() const; QRectF extent() const; QPair elexelSize() const; double elevation(double lon, double lat) const; // rad double distance(const QPointF &start, const QPointF &end) const; double profileDistance(const QPointF &start, const QPointF &end) const; unsigned int elevationProfile(const QPointF &start, const QPointF &end, Vec3dVector &elevProfile) const; void interpolation(bool on) { m_aproximation = on; } bool interpolation() const { return m_aproximation; } bool contains(const QPointF &point) const; bool intersects(const QPolygonF &polygon) const; // Line of Sight Profile: berücksichtigt Erdkrümmung und WGS84 Erdellipsoid void LOSProfile(const QPointF &start, const QPointF &end, LOSVector &losProfile); protected: int getElevation(int column, int row) const; double getElevation(double lon, double lat) const; double getOrSubstituteElevation(int column, int row, double substitute) const; // getSamplePoints rastert den Vector( start, end) in Lat/Lon entsprechend dem Höhenraster void getSamplePoints(const QPointF &start, const QPointF &end, Vec3dVector &sPnts) const; int clipp2Map(const QPointF &start, const QPointF &end, QPointF &cStart, QPointF &cEnd) const; bool readFromFile(); struct Internal; Internal *m_internal; QString m_fileName; bool m_aproximation; bool m_valid; QFutureWatcher m_gdalReadWatcher; LOGGER_T m_logger; ///< Interface of the Logging-Facility }; // ElevationMap } // SituationMap /* ----------------------------------------------------------------------------------------------- ** CVS-Id/Release ...: $Header$ ** ----------------------------------------------------------------------------------------------- ** ** Historie: ** ** $Log: not supported by cvs2svn $ ** Revision 1.20 2006/09/26 07:51:12 Jörg ** Syntax Fehler unter Suse Linux 10.1 behoben. ** ** Revision 1.19 2006/03/24 09:05:24 klaus ** Elevationprofile: Begrenzung auf Kartengröße aufgehoben ( Clipping) ** ** Revision 1.18 2005/11/09 11:12:27 klaus ** Anpassung an Linux: Kommentar hinter #endif mit "//" versehen ** ** Revision 1.17 2005/08/22 14:15:02 joerg ** typeId() ** ** Revision 1.16 2005/08/12 09:37:44 joerg ** Koordinaten-Umprojezieren bei Wechsel der Projektion ** ** Revision 1.15 2005/04/15 13:04:35 joerg ** Resource Control ** ** Revision 1.14 2005/03/04 14:29:13 klaus ** Elevationmap mit CachedTileList versehen und automatischem Entladen von Tiles ** ** Revision 1.13 2005/03/03 12:37:14 klaus ** dynamischen Laden und Entladen der ElevationTiles für Reliefmap ** ** Revision 1.12 2005/03/01 12:33:12 klaus ** Reliefmap eingeführt, aus Elevationmap entfernt ** ** Revision 1.11 2005/02/25 15:26:41 klaus ** Ergänzung um Reliefkarte ** ** Revision 1.10 2005/02/10 14:13:21 klaus ** Bias in Basisklasse MapObject überführt ** ** Revision 1.9 2005/02/10 13:51:01 klaus ** Bias für SightFans eingeführt ** ** Revision 1.8 2005/02/09 16:53:06 klaus ** 1. Version der SightFans ** ** Revision 1.7 2005/01/26 12:25:41 klaus ** todos bearbeitet, Fehlerrückmeldnugen ** ** Revision 1.6 2004/12/14 09:43:25 klaus ** 7. Erweiterung für Höhenkarten ** ** Revision 1.5 2004/12/07 11:07:20 klaus ** 5. Erweiterung für Höhenkarten ** ** Revision 1.4 2004/12/03 16:24:12 klaus ** 4. Erweiterung für Höhenkarten ** ** Revision 1.3 2004/11/30 13:15:28 klaus ** 3. Erweiterung für Höhenkarten ** ** Revision 1.2 2004/11/23 14:36:14 klaus ** 2. Erweiterung für Höhenkarten ** ** ** ----------------------------------------------------------------------------------------------- */