USA.
*/
+#include "parser.h"
+
+#include <QCryptographicHash>
#include <QDebug>
-#include <QtGlobal>
-#include <QStringList>
#include <QNetworkReply>
-#include <QPointF>
-#include <QCryptographicHash>
+#include <QStringList>
+#include <QtGlobal>
#if defined(Q_WS_MAEMO_5) & defined(ARMEL)
#include <QDBusInterface>
#include <QDBusMessage>
#endif
-#include "common.h"
+#include "coordinates/geocoordinate.h"
+#include "error.h"
+#include "location.h"
#include "network/networkaccessmanager.h"
-#include "parser.h"
#include "route.h"
#include "routesegment.h"
const QString CLOUDMADE_AUTH_PART = "http://auth.cloudmade.com/token/";
const QString CLOUDMADE_API_KEY = "0cea0072adbf42ce823f4c78b974f12d";
-
RoutingService::RoutingService(QObject *parent)
: QObject(parent)
{
foreach(QVariant routeGeometry, result["route_geometry"].toList()) {
QStringList list = routeGeometry.toStringList();
- route.appendGeometryPoint(QPointF(list.at(1).toDouble(), list.at(0).toDouble()));
+ route.appendGeometryPoint(GeoCoordinate(list.at(0).toDouble(),
+ list.at(1).toDouble()));
}
foreach(QVariant routeInstructions, result["route_instructions"].toList()) {
segment.setLengthCaption(list.at(4));
segment.setEarthDirection(list.at(5));
segment.setAzimuth(list.at(6).toDouble());
- if (list.count() == 8) {
+ if (list.count() == 9) {
segment.setTurnType(list.at(7));
segment.setTurnAngle(list.at(8).toDouble());
}
QString uidPart = "?userid=";
QByteArray rawData;
-#ifdef Q_WS_MAEMO_5
+#if defined(Q_WS_MAEMO_5) & defined(ARMEL)
// get the device IMEI code
QDBusInterface interface(SIM_DBUS_SERVICE, SIM_DBUS_PATH, SIM_DBUS_IFACE,
QDBusConnection::systemBus());
{
qDebug() << __PRETTY_FUNCTION__;
- if (m_currentRequests.contains(reply)) {
-
- QByteArray replyArray = reply->readAll();
- qDebug() << "Reply from: " << reply->url() << "reply " << replyArray;
-
- if (reply->error()) {
- emit error(ErrorContext::NETWORK, reply->error());
- } else if(reply->url().toString().contains(CLOUDMADE_AUTH_PART)) {
- m_token = replyArray;
- m_pendingRequest.append(m_token);
- sendRequest(m_pendingRequest);
- m_pendingRequest.clear();
- } else {
- parseRouteData(replyArray);
- }
+ QByteArray replyArray = reply->readAll();
- m_currentRequests.removeAll(reply);
- reply->deleteLater();
+ if (reply->error()) {
+ emit error(ErrorContext::NETWORK, reply->error());
+ } else if(reply->url().toString().contains(CLOUDMADE_AUTH_PART)) {
+ m_token = replyArray;
+ m_pendingRequest.append(m_token);
+ sendRequest(m_pendingRequest);
+ m_pendingRequest.clear();
+ } else {
+ parseRouteData(replyArray);
}
+
+ reply->deleteLater();
}
-void RoutingService::requestRoute(QPointF from, QPointF to)
+void RoutingService::requestRoute(const GeoCoordinate &from, const GeoCoordinate &to)
{
qDebug() << __PRETTY_FUNCTION__;
QString url = "http://routes.cloudmade.com/";
url.append(CLOUDMADE_API_KEY);
url.append("/api/0.3/");
- url.append(QString::number(from.x()) + "," + QString::number(from.y()) + ",");
- url.append(QString::number(to.x()) + "," + QString::number(to.y()));
+ url.append(QString::number(from.latitude()) + "," + QString::number(from.longitude()) + ",");
+ url.append(QString::number(to.latitude()) + "," + QString::number(to.longitude()));
url.append("/car/fastest.js?lang=en&units=km&token=");
if(m_token.isEmpty()) {
request.setAttribute(QNetworkRequest::CacheSaveControlAttribute, false);
QByteArray ba;
- QNetworkReply *reply = m_networkManager->post(request, ba, false);
-
- m_currentRequests.append(reply);
+ m_networkManager->post(request, ba, false);
}