2 Situare - A location system for Facebook
3 Copyright (C) 2010 Ixonos Plc. Authors:
5 Jussi Laitinen - jussi.laitinen@ixonos.com
7 Situare is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 version 2 as published by the Free Software Foundation.
11 Situare is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with Situare; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
31 * @class MapEngine mapengine.h "map/mapengine.h"
33 class MapEngine : public QObject
39 * @brief Constructor for the MapEngine.
42 * @param parent QObject
44 MapEngine(QObject *parent = 0);
48 * @brief Transforms coordinates to tile x,y values.
51 * @param latitude latitude value
52 * @param longitude longitude value
53 * @param zoom zoom level
54 * @return QPoint tile x,y
56 static QPoint latLonToTile(qreal latitude, qreal longitude, int zoom) {
58 qreal z = static_cast<qreal>(1 << zoom);
60 qreal x = static_cast<qreal>((longitude + 180.0) / 360.0);
61 qreal y = static_cast<qreal>((1.0 - log(tan(latitude * M_PI / 180.0) + 1.0
62 / cos(latitude * M_PI / 180.0)) / M_PI) / 2.0);
64 return QPoint(qFloor(x*z), qFloor(y*z));
68 * @brief Transforms tile x value to longitude.
70 * @fn tileXToLongitude
71 * @param x tile x value
72 * @param zoom zoom value
73 * @return qreal longitude
75 qreal tileXToLongitude(int x, int zoom);
78 * @brief Transforms tile y value to latitude.
81 * @param y tile y value
82 * @param zoom zoom value
83 * @return qreal latitude
85 qreal tileYToLatitude(int y, int zoom);