File indexing completed on 2024-04-28 03:50:34
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2010 Dennis Nienhüser <nienhueser@kde.org> 0004 // 0005 0006 0007 #ifndef MARBLE_OSMNOMINATIMREVERSEGEOCODINGRUNNER_H 0008 #define MARBLE_OSMNOMINATIMREVERSEGEOCODINGRUNNER_H 0009 0010 #include "ReverseGeocodingRunner.h" 0011 #include "GeoDataCoordinates.h" 0012 0013 #include <QString> 0014 #include <QNetworkAccessManager> 0015 #include <QNetworkRequest> 0016 0017 class QNetworkReply; 0018 class QDomNode; 0019 0020 namespace Marble 0021 { 0022 0023 class GeoDataExtendedData; 0024 0025 class OsmNominatimRunner : public ReverseGeocodingRunner 0026 { 0027 Q_OBJECT 0028 public: 0029 explicit OsmNominatimRunner(QObject *parent = nullptr); 0030 0031 ~OsmNominatimRunner() override; 0032 0033 // Overriding MarbleAbstractRunner 0034 void reverseGeocoding( const GeoDataCoordinates &coordinates ) override; 0035 0036 private Q_SLOTS: 0037 // Forward a result to the search or reverse geocoding handler 0038 void handleResult( QNetworkReply* ); 0039 0040 void returnNoReverseGeocodingResult(); 0041 0042 void startReverseGeocoding(); 0043 0044 private: 0045 static void extractChildren(const QDomNode &node, GeoDataPlacemark &placemark); 0046 0047 QNetworkAccessManager m_manager; 0048 0049 QNetworkRequest m_request; 0050 0051 GeoDataCoordinates m_coordinates; 0052 }; 0053 0054 } 0055 0056 #endif