File indexing completed on 2024-05-05 03:51:02
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_OSMNOMINATIMSEARCHRUNNER_H 0008 #define MARBLE_OSMNOMINATIMSEARCHRUNNER_H 0009 0010 #include "SearchRunner.h" 0011 0012 #include <QString> 0013 #include <QNetworkAccessManager> 0014 #include <QNetworkRequest> 0015 0016 class QNetworkReply; 0017 class QDomNode; 0018 0019 namespace Marble 0020 { 0021 class GeoDataExtendedData; 0022 0023 class OsmNominatimRunner : public SearchRunner 0024 { 0025 Q_OBJECT 0026 public: 0027 explicit OsmNominatimRunner(QObject *parent = nullptr); 0028 0029 ~OsmNominatimRunner() override; 0030 0031 void search( const QString &searchTerm, const GeoDataLatLonBox &preferred ) override; 0032 0033 private Q_SLOTS: 0034 // Forward a result to the search or reverse geocoding handler 0035 void handleResult( QNetworkReply* ); 0036 0037 // No results (or an error) 0038 void returnNoResults(); 0039 0040 void startSearch(); 0041 0042 private: 0043 static GeoDataExtendedData extractChildren(const QDomNode &node); 0044 0045 QNetworkAccessManager m_manager; 0046 QNetworkRequest m_request; 0047 }; 0048 0049 } 0050 0051 #endif