summaryrefslogtreecommitdiff
path: root/src/plugins/geoservices/osm
Commit message (Collapse)AuthorAgeFilesLines
* Enforce numberAlternativeRoutes where possible when doing route requestsPaolo Angelelli2017-11-281-1/+1
| | | | | Change-Id: I321e802d795df36d8cdd1b8578e77094c500cc2e Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Fix disabling redirection for providers that have no local fallbackMÃ¥rten Nordheim2017-09-112-8/+9
| | | | | | | | | | | Currently these providers would not turn ready when disableRedirection() is called, while they also get disconnected, thus never being tried to be resolved, resulting in stalling the completion of the provider's resolution process Task-number: QTBUG-63033 Change-Id: I316b858fbc66b82bc124b8814b25fe29bc0c21a1 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Fix OSM plugin not working with providersrepository.disabled = truePaolo Angelelli2017-07-071-0/+2
| | | | | | | | Provider's status was not updated when disabling the redirection. Task-number: QTBUG-61637 Change-Id: I5987cc8363f69060c5e9ed7daafaab03043e333c Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Add pluginName to QGeoMapType and check against it in setActiveMapTypePaolo Angelelli2017-05-071-9/+10
| | | | | | | | | | | This patch adds a QByteArray member to QGeoMapType with the name of the plugin providing that map type. This value is then used to validate what is passed to QDeclarativeGeoMap::setActiveMapType to see if it's a map type for the currently set plugin. Change-Id: If15b67c32150f0c3c2815d28e26fc37138d4cf71 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Allow overzooming when setting zoomLevel directly in a MapPaolo Angelelli2017-04-121-0/+1
| | | | | | | | | | | | | This patch moves the lower/upper bound check on setZoom from QDeclarativeGeoMap to the gesture area, allowing to set higher zoom levels than the maximumZoomLevel when setting Map.zoomLevel directly, for the map types that support overzoom. This is now safe as the bound check is introduced in the tile fetcher, so no invalid tiles will be requested, and is beneficial when combining layers supporting different maximum zoom levels. Change-Id: I08ee9c282ee2ebc1dafa3c68a238b93ffbc1ba02 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Bound check QGeoTileSpec against min/max ZL before requesting itPaolo Angelelli2017-04-122-2/+2
| | | | | | | | | | | | | | | | | | Until now we have not honored the min/max zoom levels specified in QGeoCameraCapabilities when requesting tiles. As a result we have often fired requests for non-existing tile layers. This change complements the added support for individual camera caps for each map type, and makes the tile fetcher honor the bounds defined in the camera capabilities. This also allows to set larger zoom levels in the renderer, overzooming existing tiles, without the fetcher firing requests for invalid resources Change-Id: Ic8a523a114147109f7ef8af3510a3ab78d06d714 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Replace QGeoMapType argument of cameraCapabilitiesPaolo Angelelli2017-04-122-6/+6
| | | | | | | | | | Since the only part of QGeoMapType used in the method is mapId, there's no need to pass the whole map type as argument. The benefit is that the camera caps can be requested solely based on the info in QGeoTileSpec. Change-Id: Iafd0e2a1d4d45fbf02b862efe56841001cbebd75 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Fix Clang warning about inconsistent use of override keywordThiago Macieira2017-04-031-2/+2
| | | | | | | qgeotiledmappingmanagerengineosm.h:62:14: error: 'createMap' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] Change-Id: I27b55fdf514247549455fffd14b17c97ad2db003 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* Add parameter to control prefetching in tile-based geoservice pluginsPaolo Angelelli2017-03-271-0/+12
| | | | | Change-Id: I18fc1788f7af0efe76f97257ffe739eb1a96e6cc Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Merge "Merge remote-tracking branch 'gerrit/5.8' into 5.9" into refs/staging/5.9Paolo Angelelli2017-02-283-35/+49
|\
| * Merge remote-tracking branch 'gerrit/5.8' into 5.9Alex Blasche2017-02-283-35/+49
| |\ | | | | | | | | | Change-Id: I3c27a0635fa324dfea7a1d19774a66e21c066bbe
| | * Fix null pointer exceptionPaolo Angelelli2017-02-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This patch fixes a null pointer exception happening when the application starts without network and then the network becomes available Change-Id: Iedeacf8fb8f350dfa92c05c1d2e16f62199ca5fd Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| | * Reduce the amount of mutexed codePaolo Angelelli2017-02-281-2/+3
| | | | | | | | | | | | | | | Change-Id: Ic0dfe488ba8aafb0f3ca3a2b6209d59484d07af8 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| | * Fix incorrect handling of provider resolution for offline storagePaolo Angelelli2017-02-282-32/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the incorrect handling of the population/repopulation of OSM offline tiles when the providers are initially populated. In this way it is now fine if the user selects high dpi tiles, and has both high dpi and low dpi offline tiles, and the high dpi provider is unavailable. Change-Id: I4d7080d6f259663bf6ca7a985fd9784fb81cfec3 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | Make QGeoCameraCapabilities independent of the enginePaolo Angelelli2017-02-285-12/+47
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes it possible to change QGeoCameraCapabilites at runtime, when the map type changes, to accommodate for those plugins that offer different maps having different capabilities. This is then used to properly push the min/max zoom levels for each map type in our OSM plugin. Autotests are included. Change-Id: I48532da77ffb3eaf2e752561395945c3a2c21985 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | Fix incorrect method invocation in QPlaceSearchReplyOsmPaolo Angelelli2017-02-271-1/+1
| | | | | | | | | | | | | | | | | | | | A previous change removed the QPlaceReply:: prefix on setError, now causing to recursively call itself endlessly. This patch reverts the change. Change-Id: Iacf704760c970fab44490897ca1192b817814b83 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | Default style for the copyright defined on the pluginThiago Marcos P. Santos2017-02-131-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | The Mapbox GL plugin defines a logo image on the copyright notice that needs styling in order to have an appealing look and feel. The default style is empty, so we need to fetch one for the plugin to make this work. Task-number: QTBUG-58601 Change-Id: Ib3f7d7d7fcb2797c6381fc862ce7513b516c9ff5 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-02-021-0/+3
|\ \ | |/ | | | | Change-Id: I07a2f4160750b548dfee882cb9b5b057d83236e2
| * Fix for index OOBPaolo Angelelli2017-01-271-0/+3
| | | | | | | | | | | | | | Adding a range check to prevent an index OOB error. Change-Id: I9d2d13f27755511893a0731f3cf0bb934b0a8795 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Add color and style properties to QDeclarativeGeoMapCopyrightNoticePaolo Angelelli2017-01-311-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds two new properties to the MapCopyrightNotice element to allow changing the background color and content style of the notice. backgroundColor controls the color of the background of the element. styleSheet, on the other hand, sets a stylesheet to the html, which allows to change color, font and size of the html. To make this work, the html output from the plugins has to be properly enclosed in <body></body> tags. Change-Id: I776f78f4b26b5b2cf04510a9fbc6302334b09c61 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | Add rotation/tilting support to QGeoTiledMapScene/QGeoCameraTilesPaolo Angelelli2017-01-261-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds rotation and tilting support to QGeoTiledMapScene and QGeoCameraTiles. It also adds the related capabilities to the geoservice plugins mapping managers QML Api is added in a separate patch Change-Id: I3de1b52a9928c4856f6ee57ad39191acebe0f770 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2017-01-252-1/+2
|\ \ | |/ | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I786a0bff424afcb791a9aff68cc16df074153492
| * Prevent destroying QGeoTileProviderOsm before QGeoFileTileCacheOsmPaolo Angelelli2017-01-172-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Parenting QGeoTileProviderOsm under QGeoMappingManagerEngine puts them at the same level in the qobject tree as QGeoFileTileCacheOsm. Since the latter uses the providers in the destructor, it might end up calling the destructor with providers already destroyed. This patch parents the providers under the file tile cache, so that they will be destroyed after the cache. Task-number: QTBUG-58124 Change-Id: Id2fc04da58e1ba9c80a4b6c4ebeaf98cccc7d872 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | Merge remote-tracking branch 'gerrit/5.8' into devAlex Blasche2016-12-055-43/+227
|\ \ | |/ | | | | | | | | | | | | | | | | | | Conflicts: src/imports/location/qdeclarativegeomap.cpp src/location/maps/maps.pri src/location/maps/qgeomap_p_p.h src/plugins/geoservices/nokia/qgeocodereply_nokia.cpp src/plugins/geoservices/osm/qgeoroutereplyosm.cpp Change-Id: I18d31cff9233648178fe3e2636ce294026dfaeb7
| * Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-281-7/+0
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp Change-Id: I44fd4bd47f97acd7ca5a0bdb235a701a59497528
| | * Merge remote-tracking branch 'origin/5.6' into 5.75.7Liang Qi2016-11-241-7/+0
| | |\ | | | | | | | | | | | | Change-Id: I49b1b3fc94819b5a7f2fd1ab2481a1d8ea41586b
| | | * Remove duplicated but otherwise harmless codeAlex Blasche2016-11-081-7/+0
| | | | | | | | | | | | | | | | | | | | Change-Id: I35f53f136ba6a4c7d62a82f41ee193963159a392 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
| * | | Add cache cost strategy parameters to all geoservice pluginsPaolo Angelelli2016-11-241-1/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the possibility to change the cost strategy on all the geoservice plugins Change-Id: I0903d931ea228cc468216780fb87b466bc383063 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | Evict obsolete provider data on init()Paolo Angelelli2016-11-085-41/+187
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During initialization, this patch makes sure that the cached tiles belong to the provider currently in use by using the file lastModified() value and comparing it against the (optional) Timestamp in the provider records. If this value is not present in the provider record, or if it is older than the newest modified file, the data is untouched. This operation is performed separately for each map id. This method isn't perfect in all use cases, though. E.g., if we are forced to shut down one of the provider and run on the hardcoded fallback, which has an older TS. These are however rare edge cases that most likely won't happen in practice (in the case above we could put the content of the hardcoded provider in the remote json files too) Change-Id: Ie29cf05c1fbc835ce4e3363fc0caa38a97800214 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | | Refactoring: removing m_reply from GeoReply classesPaolo Angelelli2016-11-299-160/+74
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch tries to simplify the code removing the contained m_reply from all the Geo[Map,Route,Geocode,Places]Reply classes. The need for m_reply was associated to the "abort" method, but this can be solved by emitting a signal in the superclass abort() method, and connecting that to QNetworkReply::abort() in the constructor. Since QNetworkReplyHttpImpl always sends an OperationCanceledError it should then be safe to call deleteLater() on the network reply in the slot connected to QNetworkReply::error This patch also prevents the series of "QCoreApplication::postEvent: Unexpected null receiver" warnings that are generated due to deletingLater already deleted objects (abort() emits an error, the reply is destroyed inside the onError slot, but also in the abort() method). Finally, this patch removes the setFinished() call in QGeoRouteReply::abort() since the documentation does not mention this, and all the subclasses do not perform this operation and emit the corresponding signal. tst_qgeoroutereply has been adapted accordingly. Change-Id: I226ee163e7bed784dd7f0da1522e651459543bca Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | Merge remote-tracking branch 'gerrit/5.7' into 5.8Alex Blasche2016-11-023-324/+36
|\ \ \ | |/ / | | | | | | | | | | | | | | | Conflicts: tests/auto/declarative_ui/BLACKLIST Change-Id: I0f6c9228c899c4d1d55fffc596c661ee0f6c2b66
| * | Merge remote-tracking branch 'gerrit/5.6' into 5.7Alex Blasche2016-11-023-324/+36
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | Conflicts: src/imports/location/qdeclarativegeomap.cpp src/location/maps/maps.pri Change-Id: I346d7351e98f4a1aa67c9c0401d41b6da9099f48
| | * Return only one route from osm pluginPaolo Angelelli2016-10-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Until we figure out a way to deliver also the id of the route from the RouteModel, it's better to return only the first route or otherwise it's hard, in the mapItemView to either create only one delegate or treat delegates after the first differently Change-Id: Ibaa92ce93349619a31c105546ee9c3ff760c5b0b Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| | * Add OSRMv5 support in osm pluginPaolo Angelelli2016-10-063-323/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the OSRMv5 protocol (the only one currently available on the OSRM demo server router.project.osrm.org). Support for the old v4 protocol is retained, in case of users who supply their own osm.routing.host parameter pointing at a self hosted OSRMv4 server. The support for OSRMv4 and v5 has been moved away from the osm plugin and into the location module because this should be used in the mapbox plugin in a subsequent patch (the routing support in the mapbox plugin currently uses the text direction coming from the server, which does not support i18n) Task-number: QTBUG-56119 Change-Id: Id30fd536c7fd434011795f643221f55becfc9e18 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | | Fix assignment-as-condition warningErik Verbruggen2016-10-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qgeofiletilecacheosm.cpp:71:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if (tt = getFromOfflineStorage(spec)) ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ qgeofiletilecacheosm.cpp:71:12: note: place parentheses around the assignment to silence this warning if (tt = getFromOfflineStorage(spec)) ^ ( ) qgeofiletilecacheosm.cpp:71:12: note: use '==' to turn this assignment into an equality comparison if (tt = getFromOfflineStorage(spec)) ^ == Assuming this is not meant to be a comparisson but a check if the return value is not-0, I added the parentheses. Change-Id: Ic4e14d7ea8cc5283c70d061433fe482ee4e8b38b Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | Fix override warningErik Verbruggen2016-10-061-1/+1
| | | | | | | | | | | | | | | Change-Id: If95a0099c858f57b4b26ecf86a46a748c947338d Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | Fix cache mixing with high-dpi and low-dpi osm providersPaolo Angelelli2016-10-057-21/+227
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This cache fixes the cache mixing problem that has been introduced with the osm high dpi tiles support. high dpi providers fall back to low dpi ones and ultimately to hardcoded providers (also low dpi), and can also be enabled/disabled via plugin parameter, thus leaving the cache for a given map id dirty for the next run. With this patch high dpi tiles are named differently from low dpi ones. If high-dpi providers are selected, but become not available, the cache can also change the tileset to load at runtime Change-Id: I229692da07c1fc61c58fb0b6fae6ec5af16e43a7 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | | Fix for osm provider record fetcherPaolo Angelelli2016-09-191-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | This patch fixes a bug introduced with the high-dpi support for osm, that caused various types of malfunctioning with the osm plugin Change-Id: I08e459059be4d8c99bd2d49b42c2502e0a5cef09 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-09-181-26/+31
|\ \ \ | |/ / | | | | | | Change-Id: I5bcca8956007506362c5a96ff345e28718da584c
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-09-171-26/+31
| |\ \ | | |/ | | | | | | Change-Id: Ie8986d40efc5a241cb94ba743e343cbb35f66611
| | * Fix for multiple city tags mapping to the same fieldPaolo Angelelli2016-08-291-26/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for both "city" and "town" as Json document candidates for QGeoAddress::city Task-number: QTBUG-55371 Change-Id: I468207d81d61b16ea06034ea143bd3fd34df09b1 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | OSM: Honor min/max zoom level limits coming from the provider recordsPaolo Angelelli2016-08-303-2/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch prevents the tile fetcher from requesting tiles with a z values that is outside the range defined in the provider record. If the provider record does not specify these values, the default values are used (0 and 20) Change-Id: I5c3f7be8bbd2b2ce6c8c8d6d8d81431237e60f5b Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | Add OSM plugin parameter osm.mapping.highdpi_tilesPaolo Angelelli2016-08-309-348/+542
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a mean to enable/disable high dpi support for the OSM plugin too, following the same approach taken for the mapbox and here plugins. In order to do so, it has been necessary to rework QGeoTileProviderOsm. It can now be constructed with an arbitrary number of TileProviders, as opposed to the previous approach with one primary and one fallback tileprovider. It has also been necessary to disable Nearest interpolation for high dpi tiles, as it appears to produce considerable artifacts. So in presence of highdpi tiles, Linear interpolation is now always used. Change-Id: Id7d20fd5a320f3d5ef41b9fa28447a5c4f5398be Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-161-1/+1
|\ \ \ | |/ / | | | | | | Change-Id: I21723590f0085ecdeaf445336084e35a7f00d3f1
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-161-1/+1
| |\ \ | | |/ | | | | | | Change-Id: I1903c3a181663c424f0ff13abcc9fb7a5bdb784e
| | * Fix for wrong std::copy in QGeoTileProviderOsm::TileProviderPaolo Angelelli2016-08-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This patch fixes a bug that shows up at least on osX and iOS devices caused by an incorrect offset used in std::copy Change-Id: I09f106ddf63983365d4462e2f18a10ce44f1200a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* | | Add HighDpi support for OpenStreetMapPaolo Angelelli2016-08-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | This patch changes the osm providers repository to /osm/5.8/ where a provider with @2x tiles is used for the street style Change-Id: I9b2cd9e8f385506d153b9c430c1f99f7f6e7946c Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | Adding server side provider records for QtLocationPaolo Angelelli2016-08-057-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds to version control the files containing the provider records for qtlocation. These files should be kept in sync with what is served at http://maps-redirect.qt.io/osm/ Change-Id: Icf4ebd83818605a317f58b562df47c328a4ea7cf Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | Version tile cache with qt version and evict obsolete data on init()Paolo Angelelli2016-08-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch changes the base cache directory to a new scheme containing the qt version. At the time of commit, this would be "QtLocation/5.8/tiles/" This versioning does not have to change at every release, but when there are changes in the caching scheme. The reason for this is that, otherwise, it becomes difficult to clean up old cache data. QGeoFileTileCache::init already clean up old tile cache from 5.4 or older, where the cache data wasn't organized under a directory for each plugin. In 5.8 different naming scheme are introduced for mapbox tiles (with @1x,@2x) , here maps (with ppi), and soon for OSM too (with an identifier for the actual provider, not only the mapId). With this patch it will become easier and cleaner to upgrade the cache data without leaving residues. Change-Id: I89aeac0aaf1408d119cde5792fc69a64d5d89c3a Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-023-10/+48
|\ \ \ | |/ / | | | | | | Change-Id: I9bfe99e7e619cbf03cda73c3df4f2f51851474ae