summaryrefslogtreecommitdiff
path: root/src/location/maps/qgeoprojection.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Enable mercator-to-screen projection in GLSLPaolo Angelelli2020-02-111-9/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this change, all the geo-to-screen conversion, and the triangulation operations for geo polylines and geo polygon are performed either at set time or in the shader. A separate bounding box geometry is processed in the old way to provide a correct QtQuick Item geometry, that can be used for nesting mouse areas, performing translations, input event delivery, etc. With this approach, performance are improved by more than one order of magnitude in average, but complex geometries will of course benefit more. It also adds correct rendering support for polygons with holes, previously only rendered correctly by the MapboxGL plugin. The polyline shader has basic miter joins. The miter is skipped if the angle is too sharp to avoid complicating the implementation. This shader introduces some glitches when the polyline is minified, for which the real fix is to have LOD for the geometry, and render simplified geometries at low zoom levels (added in a subsequent patch). Note: this approach, at least in its current implementation, does not support enabling layers on individual items, only on the Map element. Task-number: QTBUG-49303 Task-number: QTBUG-38459 Change-Id: I0c2dc0bf364d32f74ca7c4014f6d66e6219c8ae4 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Unify semicolon usage in Q_UNUSEDJesus Fernandez2019-01-231-4/+4
| | | | | Change-Id: I36dd6881b6f6f028869d63b6311cba7f52a99cc4 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* Make tiled renderer and QGeoProjectionWebMercator debuggablePaolo Angelelli2018-11-281-7/+7
| | | | | | | | | | | | | | | This patch introduces a new macro, QT_LOCATION_DEBUG, that, when fed via qmake command line, changes the scope of some members, adds some extra members and some extra data dumping into these members. In this way external code can inspect the state of the renderer in order to debug it. The patch also moves a few classes into separate files, as well as privately exporting them. Change-Id: I32a042863f78dcd10f94b0b7fe8b90f3fc486891 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* Fix GeoProjectionWebMercator and MapPolyline incorrect projectionPaolo Angelelli2018-11-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes rendering artifacts with polylines appearing when rendering large polylines and/or at high zoom levels. Two problems caused the artifacts: 1.A too close near plane when calculating the projectable region in QGeoProjectionWebMercator, which presumably introduced numerical errors when then using such a region to clip data to be projected using a projection transformation based on the same frustum. 2.Projected polylines too large for qTriangulatingStroker, that would then introduce artifacts at screen. To solve 1., as a temporary solution, the distance of the near plane has been increased to a value that seems safe for zoom levels < 19. This while a better formula that scales further is being researched. To solve 2., screen-space line clipping has been brought back from 5.8, and added on top of mercator-space clipping. This, in theory, should also increase the performance, allowing qTriangulatingStroker to process less data. Task-number: QTBUG-71607 Change-Id: Id774419dde819931e2fdd78b02081695a91302ef Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Introduce Map.visibleAreaPaolo Angelelli2018-07-261-9/+104
| | | | | | | | | | This will allow moving the visible map area to a subregion of the viewport, allowing to maintain the desired visible region visible when overlaying controls on top of the map. Task-number: QTBUG-68966 Change-Id: Idf4b30f7c1e4062e5e1c0ddc01a31bc856c0bc0c Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Increase expansion factor for expanded visible region to 1.2Paolo Angelelli2018-04-181-1/+1
| | | | | | | | This to adjust for potentially large item borders, whose extent is not considered when clipping the item itself. Change-Id: I9ec11fbc8ce48870608378e7618721899bc0b4dc Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Fix Clipper screwing polyline topology during clippingPaolo Angelelli2018-04-111-0/+29
| | | | | | | | | | | | | | This fix uses a different polyline clipping algorithm to do line-polygon clipping which uses Clipper internally only to do inside/outside testing. Among other things, this method appears to be much faster than the older one. Task-number: QTBUG-66692 Task-number: QTBUG-66830 Change-Id: I2ed6f46c5d9d426a740611bec13aff69be49eb2a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Allow plugins to use alternative map projectionsPaolo Angelelli2018-01-271-6/+89
| | | | | | | | | | | | | | | | | | | | | | | | QtLocation mapping has always been geared around the WebMercator projection. Some mapping SDKs support additional projections, such as General Perspective (often called globe view or globe rendering). The goal of this patch is to allow a plugin to provide such a view, disabling WebMercator specific features, and redirecting API calls to plugin-specific implementations. In particular, this patch disables the rendering of Map Items (QDeclarativeGeoMapItemBase and sons) for projections different from WebMercator, with the exception of MapQuickItems. MapQuickItems, in turn, lose the ability to draw "on the map", when the projection is different from WebMercator. However, they can still be used to add geolocated popups, buttons and other UI elements. fitViewportToMapItems is also disabled, for both it can't be computed and there wouldn't be any item to fit (with the exception of mapquickitems) Change-Id: I9fa2fdd01a35a078fc4663efc9d269c4ecaa3f41 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Merge remote-tracking branch 'origin/5.9' into 5.10v5.10.0-beta3Liang Qi2017-10-261-5/+15
|\ | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I9a3d7ec0bb203ac8b5bd483af3973510ca33c4a9
| * Fix Map.fromCoordinate returning wrong values during tiltingPaolo Angelelli2017-09-211-5/+15
| | | | | | | | | | | | Task-number: QTBUG-63251 Change-Id: I7ceeeebb30007c5d97d61e057c8ec6e827177b19 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devPaolo Angelelli2017-08-101-16/+98
|\ \ | |/ | | | | | | | | | | Conflicts: tests/auto/declarative_ui/tst_map.qml Change-Id: If408b8242b39f78926b5373393f3b1f65b262499
| * Fix visible region computation in QGeoProjectionWebMercatorPaolo Angelelli2017-08-091-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the visible region is calculated as the intersection between the viewing frustum and the map plane clipped against the map extended rectangle in mercator space (from -1 to 2 in x coords, 0 to 1 in y coords). The result is correct in the extended mercator space. However, this may lead to overlapping coordinates when converted back to latitude and longitude. For this reason, this patch changes the clipping geometry to be the map un-extended rectangle centered around the current map center. The result is a geometry that never wraps around or overlaps, thus removing the need for handling separately the case when the map is fully visible when returning the visible region. Task-number: QTBUG-57690 Change-Id: I8396c40a123ce94bff4388dfefbd8a694657b8bd Reviewed-by: BogDan Vatra <bogdan@kdab.com>
| * Fix dragging items out of map boundsPaolo Angelelli2017-07-281-5/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 5.9.0 map items are clipped against the visible region. This implies that their geometry is also clipped against the visible region. This is problematic in ::geometryChanged, since the old geometry is always clipped in this way. This patch clips items against a "projectable" region instead, that is the part of the map that is in front of the camera. Since this can produce very large vertices, mapbox earcut 3rd party library is pulled in, to replace qTriangulate that only supports coordinates up to 1<<21. This patch also contains a fix for earcut.hpp to make it build also on QNX6.6 Task-number: QTBUG-61727 Change-Id: Iffc95fdae88fef982c1eb86db567b326b5e51057 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
| * Revert "Fix dragging items out of map bounds"Paolo Angelelli2017-07-191-52/+5
| | | | | | | | | | | | | | | | This reverts commit 2ab93acd9751b3ffe2c36a4a0e37dc792686a08f. Reason being: not passing QNX6 bot Change-Id: If45fe095b6e6959f7c40e3e0ed7a14d278bbb230 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Fix dragging items out of map boundsPaolo Angelelli2017-07-171-5/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 5.9.0 map items are clipped against the visible region. This implies that their geometry is also clipped against the visible region. This is problematic in ::geometryChanged, since the old geometry is always clipped in this way. This patch clips items against a "projectable" region instead, that is the part of the map that is in front of the camera. Since this can produce very large vertices, mapbox earcut 3rd party library is pulled in, to replace qTriangulate that only supports coordinates up to 1<<21. Task-number: QTBUG-61727 Change-Id: I7449e755a4848a2b2107c5de4e27821e3e887bfb Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
| * Fix Map.toCoordinate always clamping y values to 0Paolo Angelelli2017-07-171-7/+30
| | | | | | | | | | | | | | | | | | | | | | | | This patch allows to call toCoordinate also on negative y values, given that the y value is still below the horizon. If not, the y value will be clamped to the "minimum unprojectable y value", a value that is clamped to 0. Task-number: QTBUG-61813 Change-Id: I177d3b459b6eaf827daf860b7d4011511a7e76ee Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | Move anchorCoordinateToPoint into QGeoProjectionPaolo Angelelli2017-07-171-0/+16
|/ | | | | | | | | | anchorCoordinateToPoint functionality actually belongs to QGeoProjection. Moving it there so that it can be used in other parts of the module. Change-Id: Id135a7a4bbe14d9c83ef160682a317e3426b15ac Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Fix build with -qreal floatPaolo Angelelli2017-06-211-1/+1
| | | | | | Task-number: QTBUG-61538 Change-Id: Ib1e5cbe1bdcfc324e3e9dcaca7045c9318a5059e Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Evaluate the visible region lazily in QGeoProjectionWebMercatorPaolo Angelelli2017-05-031-6/+16
| | | | | | | | | | | | | | This change optimizes QGeoProjectionWebMercator::setupCamera, factoring out the code that calculates the visible region, and replacing it with a dirty flag. The computation is deferred to the first time visibleRegion() gets called. This is done because the visible region is currently only used to render some types of map items, meaning that in a multi layer setup, only few layers might need it. Change-Id: I5dd75969581513eb60e3cf5d6ba649349bf25378 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Remove QtGui dependency from QDoubleMatrix4x4Alex Blasche2017-04-111-0/+1
| | | | | | | | | This fixes the -no-gui build. Task-number: QTBUG-60062 Change-Id: I71400dfddac8ddf6a74906be8ba1272bf4a86781 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix for projection mismatch when aspect ratio < 1.0Paolo Angelelli2017-03-221-11/+5
| | | | | | | | | | | This patch fixes an incorrect computation of the projection matrices and thus a mismatch in projections between mbgl vs the other plugins when the window A/R is less than 1.0. Task-number: QTBUG-59417 Change-Id: Ib03eaa4c877a00c9281c335f859c854d6db632c0 Reviewed-by: Bruno de Oliveira Abinader <brunoabinader@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix for disappearing MapQuickItems with tilted cameraPaolo Angelelli2017-03-221-12/+4
| | | | | | | | | | | This patch fixes a bug that makes MapQuickItem disappear when the zoomLevel property is set, the camera is tilted and zoomed in very close to the item, causing the coordinate of the map quick item to end behind the camera. Task-number: QTBUG-59397 Change-Id: Iae92204917729eb9daaf8592db318613bf57b966 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Minor build cleanupsBruno de Oliveira Abinader2017-03-211-1/+0
| | | | | Change-Id: I85870f176510d1d6fd51bce94daf58fc326e13b3 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* Fix MapQuickItem when zoomLevel is setPaolo Angelelli2017-03-081-0/+50
| | | | | | | | | This patch fixes the behavior of MapQuickItem when the zoomLevel is set, that is it makes behave the qquickitem as if it would be on the map, instead of on the screen. Change-Id: Ibb8a6000e2f6a37a68c32df001fc8565079a6f70 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Optimize QGeoProjectionWebMercator::wrappedMapProjectionToItemPositionPaolo Angelelli2017-03-061-7/+19
| | | | | | | | | | | | | This patch bakes all the required linear transformations performed in the method inside a 4x4 double matrix, removing 4 of the 5 instructions previously performed. Autotest adaptations with compares instead of verifys have been necessary due to small epsilons in the results. Change-Id: I7795173a27812eb93a48e3175ad24fd546aeec04 Reviewed-by: Michal Klocek <michal.klocek@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Clean up dead code and TODO commentsPaolo Angelelli2017-01-301-2/+1
| | | | | | | | This patch cleans up dead or disabled code and TODO comments added with change c57d42b47004623db9b934d0688180ec6dc1a73e Change-Id: I2817f20c8eb56386f8dbee2c661e3034f48caa30 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Adapt QQuickGeoMapGestureArea to work with tilted and rotated mapsPaolo Angelelli2017-01-261-1/+7
| | | | | | | | This patch fixes the handling of pan/flick/pinch in presence of tilt or bearing. Change-Id: Iad04fd92e1c8e318e3b1b0d344852c81e554ebb7 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Add clipping for rotated/tilted Map ItemsPaolo Angelelli2017-01-261-32/+205
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add field of view support to QtLocation mappingPaolo Angelelli2017-01-261-1/+1
| | | | | | | | | | | | | | | | This patch introduces a new camera parameter, field of view, used in QGeoCameraCapabilities, QGeoCameraData and QDeclarativeGeoMap. This is necessary as now QtLocation supports map tilting, and different QGeoMap implementations support different ranges for the field of view of the camera. Through this API it becomes possible to query the supported range and current value, and to stack Map elements using different plugins while keeping a consistent camera projection across all of them. Change-Id: Ie061142bea090ec223d842efbe7924f924430496 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Add rotation and tilt controls to QDeclarativeGeoMapPaolo Angelelli2017-01-251-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QDeclarativeGeoMap currently does not provide any mean to set bearing and tilt into qgeocameradata. It has been not a problem since QGeoTiledMap and sons did not support it. External renderers however support it, so this patch adds QML api calls to control these parameters, and adapt the existing logic to take them into consideration in camera-related calls, as well as in the afterViewportChange handlers of the Map Items. This patch also sligthly modifies the QML api to make the handling of all the bounded camera property more homogeneous. Minimum and maximum zoom levels prior plugin initialization aren't -1 anymore, but are some valid lower and upper bounds for this property, that is 0 and 30. in this way all the 2 bounded properties (zoomLevel and tilt) behave the same, in that they can be freely set before plugin initialization, within reasonable predefined bounds, and, after that, they may be clamped depending on the actual plugin capabilities. Autotests for the QML part of the API included. Change-Id: I9d09e32698a7330388e465e8ea7523ee39577d34 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Make QGeoProjectionWebMercator use a projection matrixPaolo Angelelli2017-01-231-30/+111
| | | | | | | | | | | This patch changes the way QGeoProjectionWebMercator implements its operations -to and -from screen coordinates. By using a double matrix 4x4 instead of only scaling and shifting this will make it possible to convert coordinates also in presence of bearing and tilting != 0 Change-Id: I6a74a9675a7ad397ec6ad32f4274f897aa7694b1 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Move the coordinate <-> item position conversion to QGeoProjectionPaolo Angelelli2017-01-161-0/+240
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch simplifies the QGeoMap API removing all the API necessary to convert to and from screen. This is now demanded to a specific QGeoProjection class, that will be independent of the map, except for using the same Geo projection (currently only WebMercator, or EPSG:3857, although we use a sphere instead of an ellipsoid, i believe) The benefits are - This relieves subclasses of QGeoMap from implementing a GeoProjection API, especially since QtLocation currently supports only WebMercator, and reimplementations would have to anyway produce the same results as the inbuilt one. - This avoids the several indirection steps previously necessary to perform a map projection (qgeotiledmap -> private->mapscene-> private). Since these operation are quite frequent one per map item coordinate at every redraw, shortening the indirection chain is beneficial - It simplifies the highly complex QGeoTiledMapScene, separating all the logic that is not needed to draw the scene, but only to perform geo coordinate <-> screen coordinate conversion Change-Id: I9e3ca5280166f2d6430a32deb44c030d02d9d4e1 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Make geo coordinates animatable in QML.Albin Olsson2013-10-111-108/+0
| | | | | | | | | | | | | | | | | | | | Interpolation logic in AnimatableCoordinate has been moved around so that QGeoCoordinates can be animated directly by QPropertyAnimation. A new QML type has been added, 'CoordinateAnimation', for animating coordinates in QML. This type follows the pattern of 'ColorAnimation' and other specializations of 'PropertyAnimation'. QDoubleVector2D, QDoubleVector3D and QGeoProjection has been moved to QtPositioning Testcase for CoordinateAnimation has been added to declarative_ui. AnimatableCoordinate and QGeoCoordinateInterpolator are redundant and have been removed. Change-Id: I0809da566e1800274384f9c5337df65623d1e61a Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Update copyright year to 2013Sergio Ahumada2013-06-131-1/+1
| | | | | Change-Id: I5b0cb7d56997ad7b91c073b3e02b31d0368fdcfa Reviewed-by: Alex <alexander.blasche@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-241-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: Ic1390da64a219642fa1e1482a7677a4c2db15cbc Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix compilation on QNXSean Harmer2012-08-281-2/+2
| | | | | | | | including <cmath> declares the standard maths functions in the std namespace not the global namespace. Change-Id: I293cba5ed166b4f122bb34bca5c1d508e2dda259 Reviewed-by: Aaron McCarthy <aaron.mccarthy@nokia.com>
* Cleans up the projection code.David Laing2012-02-021-16/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There was no longer any point in providing the screen <-> 3d scene position functions, which meant that the projection class was just doing coordinate <-> mercator conversions and intepolating coordinates. The interpolation code was moved out and the mercator conversions were made static. We have future changes coming which will allow people who want different projections to provide them, so it's not to big a deal to specialize the class towards the mercator projection. There were some other small changes made which make the map actually pay attention to the size of the tiles and the maximum zoom level as per the plugin. Actually enforcing the tilt / bearing / zoom parameters will appear in a separate commit before very long. Change-Id: I31dc39165bde123fbe8e3e2e70e401c5d73932b3 Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I00c66363046e475e6924aafd221483c7fad5c0d9 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update obsolete contact address.Jason McDonald2012-01-231-1/+1
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I3850177e14291901e924f9c27ba09e75df00f96a Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Refactoring ahead of precision issue fixes.David Laing2012-01-171-7/+8
| | | | | | | | | | | | | | | | | | | | | We need to rework the GL geometry and camera positioning code to avoid problems with arising from the single precision floats that GL uses. This change is the first step down this path, which adds double precision versions of the QVector2/3D classes and changes the maps code to use them. It also adds a new class which determines which tiles will be visible based on the relevant bits of information from the map (now using double precision). This was done to force the decoupling of the code which determines the visible tiles from the details of the GL geometry / camera / etc... Change-Id: I7127e39097a92028dfea01d816c14c9b9666569e Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
* Adding private API warnings for the Maps API.David Laing2012-01-091-0/+4
| | | | | | | | Also renamed some of the files to follow the naming conventions for private header files. Change-Id: I84a6bc0956b942861dfb63169cb4cdcc2033f2df Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-061-1/+1
| | | | | Change-Id: I496795d13a615be8d252ca20a40dd2c5ba84ed60 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Renames the new mapping classes.David Laing2012-01-051-0/+117
Also moves them into src/location/maps. We still need to take a closer look at which classes are public and which are private, and then do the associated file renaming and addition of private header warnings. Change-Id: Ide0225ad5d5dc23834baaa9f6841646e4c92de39 Reviewed-by: Juha Vuolle <juha.vuolle@nokia.com>