2013-11-25 78 views

回答

0

我做了下面的代碼,但在有問題的。 QGeoCoordinate GCoor(lat,lang);

//Reverse GeoCoding 
QStringList serviceProviders = 
     QGeoServiceProvider::availableServiceProviders(); 
if (serviceProviders.size()) { 
    QGeoServiceProvider *serviceProvider = new QGeoServiceProvider(
      serviceProviders.at(0)); 
    QGeoSearchManager *searchManager = serviceProvider->searchManager(); 
    //searchManager->setProperty("boundary", "city"); 
    reply = searchManager->reverseGeocode(GCoor); 

    bool finished_connected = QObject::connect(reply, SIGNAL(finished()), 
      this, SLOT(readReverseGeocode())); 

    bool error_connected = QObject::connect(reply, 
      SIGNAL(error(QGeoSearchReply::Error, QString)), this, 
      SLOT(reverseGeocodeError(QGeoSearchReply::Error, QString))); 


//Reverse GeoLocation 
void LocationHandler::readReverseGeocode() { 
QList<QGeoPlace> LocDetList = reply->places(); 
QGeoPlace locDe = LocDetList.at(0); 
qDebug() << "City --> " << locDe.address().state(); 
qDebug() << "Country Code --> " << locDe.address().countryCode(); 
qDebug() << "Country --> " << locDe.address().country(); 

reply->deleteLater(); 
} 

`void LocationHandler::reverseGeocodeError(QGeoSearchReply::Error error, 
    QString errorString) { 
qDebug() << "(Geo::reverseGeocodeError) " << errorString; 
reply->deleteLater(); 
} 

該應用程序在這一行的代碼退出 -

QGeoPlace locDe = LocDetList.at(0); 

什麼問題嗎?