marble
AlternativeRoutesModel.cpp
Go to the documentation of this file.
70 static qreal distance( const GeoDataCoordinates &satellite, const GeoDataCoordinates &lineA, const GeoDataCoordinates &lineB );
75 static GeoDataCoordinates coordinates( const GeoDataCoordinates &start, qreal distance, qreal bearing );
81 static qreal unidirectionalSimilarity( const GeoDataDocument* routeA, const GeoDataDocument* routeB );
97 static QPolygonF polygon( const GeoDataLineString* lineString, qreal x, qreal y, qreal sx, qreal sy );
121 QPolygonF AlternativeRoutesModelPrivate::polygon( const GeoDataLineString* lineString, qreal x, qreal y, qreal sx, qreal sy )
143 qreal AlternativeRoutesModelPrivate::similarity( const GeoDataDocument* routeA, const GeoDataDocument* routeB )
149 qreal AlternativeRoutesModelPrivate::distance( GeoDataLineString* wayPoints, const GeoDataCoordinates &position )
163 qreal AlternativeRoutesModelPrivate::bearing( const GeoDataCoordinates &one, const GeoDataCoordinates &two )
172 GeoDataCoordinates AlternativeRoutesModelPrivate::coordinates( const GeoDataCoordinates &start, qreal distance, qreal bearing )
176 qreal lat2 = asin( sin( lat1 ) * cos( distance ) + cos( lat1 ) * sin( distance ) * cos( bearing ) );
177 qreal lon2 = lon1 + atan2( sin( bearing ) * sin( distance ) * cos( lat1 ), cos( distance ) - sin( lat1 ) * sin( lat2 ) );
181 qreal AlternativeRoutesModelPrivate::distance( const GeoDataCoordinates &satellite, const GeoDataCoordinates &lineA, const GeoDataCoordinates &lineB )
187 Q_ASSERT( qMax<qreal>( distanceSphere(satellite, lineA), distanceSphere(satellite, lineB) ) >= qAbs<qreal>(result) );
191 qreal final = qMin<qreal>( distanceSphere( satellite, lineA ), distanceSphere( satellite, lineB ) );
200 qreal AlternativeRoutesModelPrivate::unidirectionalSimilarity( const GeoDataDocument* routeA, const GeoDataDocument* routeB )
223 painter.drawPoints( AlternativeRoutesModelPrivate::polygon( waypointsA, box.west(), box.north(), sw, sh ) );
226 painter.drawPoints( AlternativeRoutesModelPrivate::polygon( waypointsB, box.west(), box.north(), sw, sh ) );
232 bool AlternativeRoutesModelPrivate::higherScore( const GeoDataDocument* one, const GeoDataDocument* two )
324 if ( role == Qt::DisplayRole && index.column() == 0 && index.row() >= 0 && index.row() < d->m_routes.size() ) {
350 qSort( d->m_restrainedRoutes.begin(), d->m_restrainedRoutes.end(), AlternativeRoutesModelPrivate::higherScore );
408 qreal AlternativeRoutesModel::distance( const GeoDataCoordinates &satellite, const GeoDataCoordinates &lineA, const GeoDataCoordinates &lineB )
413 QVector<qreal> AlternativeRoutesModel::deviation( const GeoDataDocument* routeA, const GeoDataDocument* routeB )
A container for Features, Styles and in the future Schemas.
Definition: GeoDataDocument.h:64
void clear()
Remove all alternative routes from the model.
Definition: AlternativeRoutesModel.cpp:457
int rowCount(const QModelIndex &parent=QModelIndex()) const
Overload of QAbstractListModel.
Definition: AlternativeRoutesModel.cpp:310
void currentRouteChanged(GeoDataDocument *newRoute)
void addRoute(GeoDataDocument *document, WritePolicy policy=Lazy)
Old data in the model is discarded, the parsed content of the provided document is used as the new mo...
Definition: AlternativeRoutesModel.cpp:367
void newRequest(RouteRequest *request)
Invalidate the current alternative routes and prepare for new ones to arrive.
Definition: AlternativeRoutesModel.cpp:340
qreal distanceSphere(qreal lon1, qreal lat1, qreal lon2, qreal lat2)
This method calculates the shortest distance between two points on a sphere.
Definition: MarbleMath.h:52
GeoDataDocument * currentRoute()
Definition: AlternativeRoutesModel.cpp:447
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
Overload of QAbstractListModel.
Definition: AlternativeRoutesModel.cpp:320
static GeoDataLineString * waypoints(const GeoDataDocument *document)
Returns the waypoints contained in the route as a linestring.
Definition: AlternativeRoutesModel.cpp:433
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
Overload of QAbstractListModel.
Definition: AlternativeRoutesModel.cpp:315
void setCurrentRoute(int index)
Definition: AlternativeRoutesModel.cpp:438
A LineString that allows to store a contiguous set of line segments.
Definition: GeoDataLineString.h:75
GeoDataCoordinates & at(int pos)
Returns a reference to the coordinates of a node at a given position. This method detaches the return...
Definition: GeoDataLineString.cpp:139
static qreal distance(const GeoDataCoordinates &satellite, const GeoDataCoordinates &lineA, const GeoDataCoordinates &lineB)
Returns the distance between the given point and the given great circle path.
Definition: AlternativeRoutesModel.cpp:408
static QVector< qreal > deviation(const GeoDataDocument *routeA, const GeoDataDocument *routeB)
Returns the minimal distance of each waypoint of routeA to routeB.
Definition: AlternativeRoutesModel.cpp:413
GeoDataDocument * route(int index)
Definition: AlternativeRoutesModel.cpp:331
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:48 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:48 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.