| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This property allows a user to disable the until now built-in behavior
that makes map items fade in or fade out between zoom levels
1.5 and 2.5.
By default the old behavior is kept.
[ChangeLog][Location][MapItems] Added property to disable the automatic
fade-in/fade-out behavior on low zoom levels
Change-Id: Id764f12d34db528f533f14fd561604507681f216
Fixes: QTBUG-76867
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
| |
Triggered by usage of a virtual method in superclass destructor.
Change-Id: If99e523e42fd13686ae43c0083a74e1b68221fc7
Fixes: QTBUG-67638
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
| |
This patch adds a setter for the geoShape property, overridden
in the subclasses.
Change-Id: I5fc4d412efee5e95c5650943ea5bf9b72dc40155
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
| |
This patch does not include a fix for the degenerated cases:
- circle including one pole
- circle including both poles
Change-Id: I78d9a29bf1071ab3b3405179f34f42a71c0a79a5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/location/declarativemaps/qgeomapobject.cpp
src/location/declarativemaps/qgeomapobject_p_p.h
src/plugins/geoservices/itemsoverlay/qgeomapitemsoverlay.h
Change-Id: Iab847e16011b2095d307e2a3610bf9157ae7b92d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch introduces a reference implementation for
the QGeoMapObject subclasses in the locationlabs module.
If this module is built, all current plugins, with
the exception of mapboxgl, will also be able to render
map objects.
The current reference implementation of map objects
is not optimized, but it can be useful for both testing
and feature parity (so that switching between plugins
will give the same result).
Change-Id: I830ebb3813f219e42c085f450952a2b4327361cd
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix multiple warnings caused by invalid documentation configuration,
missing QML module specifiers, wrong QML type names, incorrect
arguments for the \fn command, and missing documentation.
Remove incorrect statement from the example usage of the Waypoint
QML type.
Use 'QtLocation' as the name for the module throughout the docs.
Clang (used as the parser for QDoc in Qt 5.11) was unable to
resolve the path for qlocation.h, causing QDoc to omit the
QLocation namespace documentation. Fix this by including the
file explicitly from qlocationglobal.h for documentation
builds.
Change-Id: I2bd790db1ff5ad96f0cdb415a682b97593b3a6dc
Reviewed-by: Martin Smith <martin.smith@qt.io>
|
|
|
|
|
|
|
|
| |
Geometries are now cleared if data is invalid, before early return.
Task-number: QTBUG-66758
Change-Id: Ie89248f78b5fd817a33ed5d6ff56b3547d64a50b
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
Circles crossing one pole are drawn inverted.
Circles crossing 2 poles do not even have the correct geometry.
Nevertheless, a first approximation.
Task-number: QTBUG-58869
Change-Id: I5a508f5d6e27c4f08412a7ae327883866068a1e9
Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-62154
Change-Id: I86647b0509b4682ea6fde1305834b6a86b0b6f64
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
So it won't clash with the libclipper used by the Mapbox GL plugin
when linking Qt with -static.
With -static, all the plugins are linked together instead of each
one having its own shared library, thus, hiding private symbols.
Change-Id: I33ee4afd4b83741c5f3fae32a88da7f4a7fee75f
Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
|
|
|
|
|
|
|
|
|
| |
Add additional sanity checks to do the geometry changing
only if the map() has been set already (that is, the
item has been added to the map)
Change-Id: Id5b5faa41c68c80c3ad322f408b7a8abe5d2f7ab
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch caches the result of geoToMapProjection() for the coordinates
of the map items, regenerating this data only upon coordinate changes.
This allows avoiding to perform a (mercator) projection basically
every time the item has to be drawn, and instead do only the wrapping
around the camera center and the projection to screen
Task-number: QTBUG-59479
Change-Id: Iea5ec04f360d2fe7495cd9c1dd278e83200e0f8d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replaces Mapbox GL Native annotations with runtime styles API.
Missing:
- Map{Polygon,Rectangle} border width property - see QTBUG-58872 for details.
- MapCircle support - see QTBUG-58869 for detais.
Change-Id: I77c9daee813a63efc60104f94f440f00ac3cf70f
Reviewed-by: Thiago Marcos P. Santos <tmpsantos@gmail.com>
Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The recommended way for a plugin to get notification for when to update
items is to connect to the item's signals.
Therefore these introduced dirty flags that would have to be checked
in a loop can be removed.
Change-Id: I28c9b236b3a2e6296a89649b604381a2001a0b20
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
| |
Change-Id: I79915a496984253b2c84334aabeb99acd5bd603d
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently QtLocation Map items are always rendered by
QtLocation, on top of what QGeoMap generates.
This patch introduces a new private api call to QGeoMap,
supportedMapItemTypes(), that is used to inform QtLocation
to not render map items of those types, but rather
pass them over to the QGeoMap, which will take care of
the rendering.
In this way, more advanced renderers can properly render
map items, for example below labels or 3D buildings.
Change-Id: I1c82d4f11d4dd44c3011926512520d62e26295d4
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
QtLocation quick classes and headers are moved out of the import directory.
The location quick classes are now in a subdirectory inside the main qtlocation
module.
This is necessary in order to privately export certain classes, such as
Map Items classes, and create an API to inject these objects into QGeoMap
to let plugins render the Map Items directly
Change-Id: Ia6ba5f07c4eddd3c4c2ce54bf34f1afcd42c2558
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|