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,
25 #include "mapengine.h"
27 MapEngine::MapEngine(QObject *parent)
33 /*QPoint MapEngine::latLonToTile(qreal latitude, qreal longitude, int zoom)
36 qreal z = static_cast<qreal>(1 << zoom);
38 qreal x = static_cast<qreal>((longitude + 180.0) / 360.0);
39 qreal y = static_cast<qreal>((1.0 - log(tan(latitude * M_PI / 180.0) + 1.0
40 / cos(latitude * M_PI / 180.0)) / M_PI) / 2.0);
42 return QPoint(qFloor(x*z), qFloor(y*z));
45 qreal MapEngine::tileXToLongitude(int x, int zoom)
47 qreal z = static_cast<qreal>(1 << zoom);
48 qreal lon = x / z * 360.0 - 180.0;
53 qreal MapEngine::tileYToLatitude(int y, int zoom)
55 qreal z = static_cast<qreal>(1 << zoom);
56 qreal n = M_PI - 2 * M_PI * y / zoom;
57 return 180.0 / (M_PI * atan(0.5 * exp(n) - exp(-n)));