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 :

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";
	}
 
}
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
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;
}
J'attends vos conseils

Tooxx

edit : Mon programme ne rentre pas dans la fonction replyFinished(), or elle devrait y aller quand la connexion se fait ?