Géocodage inversé et parsage XML
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:
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 :aie:
Code:
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 :ccool:
Tooxx
edit : Mon programme ne rentre pas dans la fonction replyFinished(), or elle devrait y aller quand la connexion se fait ?