diff --git a/poilayer.cpp b/poilayer.cpp index 85292bf..9991e88 100644 --- a/poilayer.cpp +++ b/poilayer.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2010 Niels Kummerfeldt + * Copyright 2010-2011 Niels Kummerfeldt * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,6 +22,7 @@ #include "mapwidget.h" #include "projection.h" +#include #include #include #include @@ -113,11 +114,15 @@ void PoiLayer::load(const QString &filename) void PoiLayer::zoom(int level) { + if (m_points.isEmpty()) { + return; + } + + int scale = 1 << level; + m_pointsOnScreen.clear(); + m_pointsOffset = map()->raw2screen(m_points.first().x(), m_points.first().y(), scale); + m_pointsOnScreen << QPoint(0, 0); if (m_points.count() > 1) { - int scale = 1 << level; - m_pointsOnScreen.clear(); - m_pointsOffset = map()->raw2screen(m_points.first().x(), m_points.first().y(), scale); - m_pointsOnScreen << QPoint(0, 0); for (int i = 1; i < m_points.count(); ++i) { QPointF p = m_points.at(i); m_pointsOnScreen << map()->raw2screen(p.x(), p.y(), scale) - m_pointsOffset;