Bonjour à tous,
Je suis en train de programmer un petit programme de geocodage inversé mais je rencontre actuellement un probleme, dans le fichier de sortie de mon programme, aucune donnée est écrite ( seulement des retours chariot ).
Je ne trouve pas la source de mon probleme, en voici en parti le code :
et mon main qui me semble correct mais enfin on sais jamais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 GPStoAddress::GPStoAddress(std::string _latitude_longitude) : QObject(), latitude_longitude(_latitude_longitude) { netAccessMgr = new QNetworkAccessManager(); LoadXMLFromNet(); } void GPStoAddress::LoadXMLFromNet() { QString URL = QString("http://maps.googleapis.com/maps/api/geocode/xml?latlng=") + QString(latitude_longitude.c_str()) + QString("&sensor=false"); QUrl url(URL); connect(netAccessMgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*))); expectedNetReply = netAccessMgr->get(QNetworkRequest(url)); } void GPStoAddress::replyFinished(QNetworkReply* reply) { QString data(reply->readAll()); QFile file(data); file.open(QIODevice::ReadOnly); QDomDocument doc; if(!doc.setContent(&file)) { address = "unknown2"; } else { file.close(); QDomElement Root = doc.documentElement(); Root = Root.firstChildElement(); while(!Root.isNull()) { if(Root.tagName() == "result") { QDomElement FirstChild = Root.firstChildElement(); while(!FirstChild.isNull()) { if(FirstChild.tagName() == "formatted_address") { QString Address = FirstChild.text(); address = Address.toStdString(); } FirstChild = FirstChild.nextSiblingElement(); } } Root = Root.nextSiblingElement(); } address = "unknown3"; } }
J'attends vos conseils
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 int main(int argc, char *argv[]) { if( is_readable( argv[1]) ) { ifstream fichier_GPS( argv[1], ifstream::in); if ( fichier_GPS ) { string Coord_GPS; ofstream fichier_ADDRESS( argv[2], ios_base::app ); while ( getline( fichier_GPS, Coord_GPS ) ) { GPStoAddress address(Coord_GPS); fichier_ADDRESS << address.GetAddress() << endl; } } } else { cout << "non-existent or unreadable file \n"; } return 0; }
Tooxx
edit : Mon programme ne rentre pas dans la fonction replyFinished(), or elle devrait y aller quand la connexion se fait ?
Partager