summaryrefslogtreecommitdiff
path: root/src/positioning/qwebmercator.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use qRadiansToDegrees() and qDegreesToRadians() more widelyEdward Welbourne2017-02-271-3/+2
| | | | | | | | | | | | | | They document intent more clearly (and replace *two* local hand-rolled versions of each). Also kill an extraneous #include of <math.h>; and switch to qmath.h as source for M_PI, replacing the M_PID value (and friends) previously provided by (thankfully private) qlocationutils_p.h (at more precision than even long double would retain - qmath.h's M_PI is entirely sufficient even for long double, as is the Linux <math.h> one). Task-number: QTBUG-58083 Change-Id: I6fa4abd3c8ed9c826998f2cdc2aefc51681c19c1 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* Add clipping for rotated/tilted Map ItemsPaolo Angelelli2017-01-261-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds proper rotation/tilting support to Map Items. To do so, clipping is now performed in wrapped mercator space instead of screen space. This prevents projection of geo coordinates that ended behind the camera, and that would be projected incorrectly by the projection transformation. This patch therefore does not use the screen clipping code any longer (clipPathToRect), since the geometry has already been clipped. The downside is that updateSourcePoints is now necessary for any viewport change. This would be necessary anyway in presence of tilt or rotation. NB: Handling of MapQuickItems with zoomLevel set is still TODO. Future work: 1) Optimize updateSourcePoints by pre-computing the mercator projection of the geometry, and let updateSourcePoints do only the wrapping/clipping/projection-to-screen operations. 2) Remove updateScreenPoints altogether Change-Id: Ie0d3dbef68d48ac97a596d40240d0ac126c0efaf Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Rename QGeoProjection to QWebMercatorPaolo Angelelli2017-01-161-0/+137
QGeoProjection is currently a class containing only static methods for WebMercator conversion/interpolation. This patch renames it to QWebMercator, effectively freeing the QGeoProjection name for a real projection class Change-Id: I15b71d04f7d1d21a1d26f46687ed33aa277f6deb Reviewed-by: Alex Blasche <alexander.blasche@qt.io>