void FoursquareModel::getAdditionalItems( const GeoDataLatLonAltBox& box, qint32 number ) { if( marbleModel()->planetId() != "earth" ) { return; } QString clientId = "YPRWSYFW1RVL4PJQ2XS5G14RTOGTHOKZVHC1EP5KCCCYQPZF"; QString clientSecret = "5L2JDCAYQCEJWY5FNDU4A1RWATE4E5FIIXXRM41YBTFSERUH"; QString apiUrl( "https://api.foursquare.com/v2/venues/search" ); qreal const distanceLon = marbleModel()->planetRadius() * distanceSphere( box.west(), box.north(), box.east(), box.north() ); qreal const distanceLat = marbleModel()->planetRadius() * distanceSphere( box.west(), box.north(), box.west(), box.south() ); qreal const area = distanceLon * distanceLat; if ( area > 10 * 1000 * KM2METER * KM2METER ) { // Large area (> 10.000 km^2) => too large for bbox queries apiUrl += "?ll=" + QString::number( box.center().latitude(Marble::GeoDataCoordinates::Degree) ); apiUrl += ',' + QString::number( box.center().longitude(Marble::GeoDataCoordinates::Degree) ); apiUrl += "&intent=checkin"; } else { apiUrl += "?ne=" + QString::number( box.north(Marble::GeoDataCoordinates::Degree) ); apiUrl += ',' + QString::number( box.east(Marble::GeoDataCoordinates::Degree) ); apiUrl += "&sw=" + QString::number( box.south(Marble::GeoDataCoordinates::Degree) ); apiUrl += ',' + QString::number( box.west(Marble::GeoDataCoordinates::Degree) ); apiUrl += "&intent=browse"; } apiUrl += "&limit=" + QString::number( number ); apiUrl += "&client_id=" + clientId; apiUrl += "&client_secret=" + clientSecret; apiUrl += "&v=20120601"; downloadDescriptionFile( QUrl( apiUrl ) ); }
void OpenCachingComModel::getAdditionalItems( const GeoDataLatLonAltBox& box, qint32 number ) { if( marbleModel()->planetId() != "earth" ) { return; } if ( m_previousbox.contains( box ) ) { return; } QString url("http://www.opencaching.com/api/geocache/?Authorization="); url += AUTHKEY + QString("&bbox=%1,%2,%3,%4") .arg( box.south( GeoDataCoordinates::Degree ) ) .arg( box.west(GeoDataCoordinates::Degree ) ) .arg( box.north(GeoDataCoordinates::Degree ) ) .arg( box.east(GeoDataCoordinates::Degree ) ); if(!m_previousbox.isNull()) { url += QString("&exclude_bbox=%1,%2,%3,%4") .arg( m_previousbox.south( GeoDataCoordinates::Degree ) ) .arg( m_previousbox.west(GeoDataCoordinates::Degree ) ) .arg( m_previousbox.north(GeoDataCoordinates::Degree ) ) .arg( m_previousbox.east(GeoDataCoordinates::Degree ) ); } url += "&limit=" + QString::number( number ); // TODO Limit to user set tags/types/difficulty - when there is a config dialog... m_previousbox = box; // qDebug()<<"Fetching more caches: "<<url; downloadDescriptionFile( QUrl( url ) ); }
void EarthquakeModel::getAdditionalItems( const GeoDataLatLonAltBox& box, qint32 number ) { if (marbleModel()->planetId() != QLatin1String("earth")) { return; } const QString geonamesUrl( QLatin1String("http://ws.geonames.org/earthquakesJSON") + QLatin1String("?north=") + QString::number(box.north() * RAD2DEG) + QLatin1String("&south=") + QString::number(box.south() * RAD2DEG) + QLatin1String("&east=") + QString::number(box.east() * RAD2DEG) + QLatin1String("&west=") + QString::number(box.west() * RAD2DEG) + QLatin1String("&date=") + m_endDate.toString("yyyy-MM-dd") + QLatin1String("&maxRows=") + QString::number(number) + QLatin1String("&username=marble") + QLatin1String("&formatted=true")); downloadDescriptionFile( QUrl( geonamesUrl ) ); }
void OpenCachingModel::getAdditionalItems( const GeoDataLatLonAltBox& box, const MarbleModel *model, qint32 number ) { Q_UNUSED( number ); if( model->planetId() != "earth" ) { return; } // http://www.opencaching.de/doc/xml/xml11.htm QString openCachingUrl( "http://www.opencaching.de/xml/ocxml11.php" ); openCachingUrl += "?modifiedsince=" + m_startDate.toString( "yyyyMMddhhmmss" ); openCachingUrl += "&cache=1&cachedesc=1&picture=0&cachelog=1&removedobject=0"; openCachingUrl += "&lat=" + QString::number( box.center().latitude() * RAD2DEG ); openCachingUrl += "&lon=" + QString::number( box.center().longitude() * RAD2DEG ); openCachingUrl += "&distance=" + QString::number( m_maxDistance ); openCachingUrl += "&charset=utf-8&cdata=0&session=0&zip=0"; downloadDescriptionFile( QUrl( openCachingUrl ) ); }