mirror of
git://projects.qi-hardware.com/nanomap.git
synced 2024-12-04 21:14:05 +02:00
a little start at getting routing directions
This commit is contained in:
parent
223efe7457
commit
5e06ce0453
@ -38,7 +38,10 @@ MonavLayer::MonavLayer(MapWidget *map) :
|
|||||||
m_track(),
|
m_track(),
|
||||||
m_trackOnScreen(),
|
m_trackOnScreen(),
|
||||||
m_trackOffset(),
|
m_trackOffset(),
|
||||||
m_zoomLevel(0)
|
m_zoomLevel(0),
|
||||||
|
m_currentDirection(0),
|
||||||
|
m_names(),
|
||||||
|
m_types()
|
||||||
{
|
{
|
||||||
QSettings set(QDir::homePath()+"/Maps/nanomap.conf", QSettings::NativeFormat);
|
QSettings set(QDir::homePath()+"/Maps/nanomap.conf", QSettings::NativeFormat);
|
||||||
set.beginGroup("monav");
|
set.beginGroup("monav");
|
||||||
@ -132,6 +135,12 @@ void MonavLayer::paint(QPainter *painter)
|
|||||||
painter->setBrush(Qt::blue);
|
painter->setBrush(Qt::blue);
|
||||||
painter->drawPolygon(tri);
|
painter->drawPolygon(tri);
|
||||||
}
|
}
|
||||||
|
//if (m_currentDirection < m_names.count()) {
|
||||||
|
// painter->setBrush(QBrush(QColor(255, 255, 255, 210)));
|
||||||
|
// painter->drawRoundedRect(25, 1, 200, 16, 5, 5);
|
||||||
|
// painter->drawText(30, 3, 190, 14, Qt::AlignCenter,
|
||||||
|
// m_names.at(m_currentDirection));
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MonavLayer::keyPressed(QKeyEvent *event)
|
void MonavLayer::keyPressed(QKeyEvent *event)
|
||||||
@ -168,6 +177,20 @@ void MonavLayer::keyPressed(QKeyEvent *event)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case Qt::Key_N:
|
||||||
|
{
|
||||||
|
if (m_currentDirection < m_names.count()-1) {
|
||||||
|
++m_currentDirection;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case Qt::Key_P:
|
||||||
|
{
|
||||||
|
if (m_currentDirection > 0) {
|
||||||
|
--m_currentDirection;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -197,10 +220,21 @@ void MonavLayer::findRoute()
|
|||||||
if (m_router->GetRoute(&dist, &nodes, &edges, startPos, endPos)) {
|
if (m_router->GetRoute(&dist, &nodes, &edges, startPos, endPos)) {
|
||||||
qDebug() << "route found";
|
qDebug() << "route found";
|
||||||
m_track.clear();
|
m_track.clear();
|
||||||
for (int j = 0; j < nodes.size(); ++j) {
|
for (int i = 0; i < nodes.size(); ++i) {
|
||||||
GPSCoordinate c = nodes[j].coordinate.ToGPSCoordinate();
|
GPSCoordinate c = nodes[i].coordinate.ToGPSCoordinate();
|
||||||
m_track << QPointF(Projection::lon2rawx(c.longitude), Projection::lat2rawy(c.latitude));
|
m_track << QPointF(Projection::lon2rawx(c.longitude), Projection::lat2rawy(c.latitude));
|
||||||
}
|
}
|
||||||
|
for (int i = 0; i < edges.size(); ++i) {
|
||||||
|
QString name, type;
|
||||||
|
m_router->GetName(&name, edges[i].name);
|
||||||
|
m_router->GetType(&type, edges[i].type);
|
||||||
|
if (m_names.isEmpty() || (!m_names.isEmpty() && name != m_names.last())) {
|
||||||
|
m_names << name;
|
||||||
|
m_types << type;
|
||||||
|
}
|
||||||
|
//qDebug() << name << type << edges[i].seconds;
|
||||||
|
}
|
||||||
|
m_currentDirection = 0;
|
||||||
zoom(m_zoomLevel);
|
zoom(m_zoomLevel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,8 @@ private:
|
|||||||
QPolygonF m_track;
|
QPolygonF m_track;
|
||||||
QList<QPoint> m_trackOnScreen;
|
QList<QPoint> m_trackOnScreen;
|
||||||
QPoint m_trackOffset;
|
QPoint m_trackOffset;
|
||||||
int m_zoomLevel;
|
int m_zoomLevel, m_currentDirection;
|
||||||
|
QStringList m_names, m_types;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user