1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2024-11-30 22:51:16 +01:00

Fixed (centred) waypoint position markers

Fixed waypoint "radius" computation
This commit is contained in:
Martin Tůma 2016-03-13 17:44:25 +01:00
parent 201b3f6dae
commit 61c82a0836
4 changed files with 15 additions and 15 deletions

View File

@ -46,8 +46,7 @@ bool POI::loadGPXFile(const QString &fileName)
if (gpx.loadFile(fileName)) { if (gpx.loadFile(fileName)) {
for (int i = 0; i < gpx.waypoints().size(); i++) for (int i = 0; i < gpx.waypoints().size(); i++)
_data.append(Waypoint( _data.append(Waypoint(gpx.waypoints().at(i).coordinates(),
ll2mercator(gpx.waypoints().at(i).coordinates()),
gpx.waypoints().at(i).description())); gpx.waypoints().at(i).description()));
index.end = _data.size() - 1; index.end = _data.size() - 1;
@ -108,7 +107,7 @@ bool POI::loadCSVFile(const QString &fileName)
} }
QByteArray ba = list[2].trimmed(); QByteArray ba = list[2].trimmed();
_data.append(Waypoint(ll2mercator(QPointF(lon, lat)), _data.append(Waypoint(QPointF(lon, lat),
QString::fromUtf8(ba.data(), ba.size()))); QString::fromUtf8(ba.data(), ba.size())));
ln++; ln++;
} }

View File

@ -124,7 +124,7 @@ void Track::speedGraph(QVector<QPointF> &graph) const
void Track::track(QVector<QPointF> &track) const void Track::track(QVector<QPointF> &track) const
{ {
for (int i = 0; i < _data.size(); i++) for (int i = 0; i < _data.size(); i++)
track.append(ll2mercator(_data.at(i).coordinates)); track.append(_data.at(i).coordinates);
} }
qreal Track::distance() const qreal Track::distance() const

View File

@ -55,9 +55,9 @@ void TrackView::addTrack(const QVector<QPointF> &track)
_tracks.append(track); _tracks.append(track);
path.moveTo(track.at(0).x(), -track.at(0).y()); path.moveTo(ll2mercator(QPointF(track.at(0).x(), -track.at(0).y())));
for (int i = 1; i < track.size(); i++) for (int i = 1; i < track.size(); i++)
path.lineTo(track.at(i).x(), -track.at(i).y()); path.lineTo(ll2mercator(QPointF(track.at(i).x(), -track.at(i).y())));
_maxLen = qMax(path.length(), _maxLen); _maxLen = qMax(path.length(), _maxLen);
@ -167,8 +167,7 @@ void TrackView::rescale(qreal scale)
QHash<Waypoint, WaypointItem*>::const_iterator it, jt; QHash<Waypoint, WaypointItem*>::const_iterator it, jt;
for (it = _pois.constBegin(); it != _pois.constEnd(); it++) { for (it = _pois.constBegin(); it != _pois.constEnd(); it++) {
it.value()->setPos(QPointF(it.value()->entry().coordinates().x() it.value()->setPos(it.value()->entry().coordinates() * 1.0/scale);
* 1.0/scale, -it.value()->entry().coordinates().y() * 1.0/scale));
it.value()->show(); it.value()->show();
} }
@ -197,9 +196,11 @@ void TrackView::loadPOI(const POI &poi)
if (_pois.contains(p.at(i))) if (_pois.contains(p.at(i)))
continue; continue;
WaypointItem *pi = new WaypointItem(p.at(i)); WaypointItem *pi = new WaypointItem(
pi->setPos(p.at(i).coordinates().x() * 1.0/_scale, Waypoint(ll2mercator(QPointF(p.at(i).coordinates().x(),
-p.at(i).coordinates().y() * 1.0/_scale); -p.at(i).coordinates().y())), p.at(i).description()));
pi->setPos(pi->entry().coordinates() * 1.0/_scale);
pi->setZValue(1); pi->setZValue(1);
_scene->addItem(pi); _scene->addItem(pi);

View File

@ -20,8 +20,8 @@ void WaypointItem::updateBoundingRect()
QFontMetrics fm(font); QFontMetrics fm(font);
QRect ts = fm.tightBoundingRect(_entry.description()); QRect ts = fm.tightBoundingRect(_entry.description());
_boundingRect = QRectF(0, 0, ts.width() + POINT_SIZE, _boundingRect = QRectF(-POINT_SIZE/2, -POINT_SIZE/2, ts.width()
ts.height() + fm.descent() + POINT_SIZE); + POINT_SIZE, ts.height() + fm.descent() + POINT_SIZE);
} }
void WaypointItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, void WaypointItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
@ -36,10 +36,10 @@ void WaypointItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opti
QRect ts = fm.tightBoundingRect(_entry.description()); QRect ts = fm.tightBoundingRect(_entry.description());
painter->setFont(font); painter->setFont(font);
painter->drawText(POINT_SIZE - qMax(ts.x(), 0), POINT_SIZE + ts.height(), painter->drawText(POINT_SIZE/2 - qMax(ts.x(), 0), POINT_SIZE/2 + ts.height(),
_entry.description()); _entry.description());
painter->setBrush(Qt::SolidPattern); painter->setBrush(Qt::SolidPattern);
painter->drawEllipse(0, 0, POINT_SIZE, POINT_SIZE); painter->drawEllipse(-POINT_SIZE/2, -POINT_SIZE/2, POINT_SIZE, POINT_SIZE);
/* /*
painter->setPen(Qt::red); painter->setPen(Qt::red);