diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2017-10-27 20:05:45 +0300 |
---|---|---|
committer | Fabian Guerra Soto <fabian.guerra@mapbox.com> | 2017-11-01 09:23:53 -0400 |
commit | 953ecae6848dde87c6a1ce8bf51ff1b6e93969f6 (patch) | |
tree | 366470508ceecb072d9a539f4442de5ed8f7a63f /platform | |
parent | de9098cf99463e433e9e9d6088865bc63948e567 (diff) | |
download | qtlocation-mapboxgl-953ecae6848dde87c6a1ce8bf51ff1b6e93969f6.tar.gz |
[core] map snapshotter - add attributions to snapshotter callback
Diffstat (limited to 'platform')
-rw-r--r-- | platform/default/mbgl/map/map_snapshotter.cpp | 11 | ||||
-rw-r--r-- | platform/default/mbgl/map/map_snapshotter.hpp | 4 |
2 files changed, 14 insertions, 1 deletions
diff --git a/platform/default/mbgl/map/map_snapshotter.cpp b/platform/default/mbgl/map/map_snapshotter.cpp index 3e930c31f1..7b4ec5913b 100644 --- a/platform/default/mbgl/map/map_snapshotter.cpp +++ b/platform/default/mbgl/map/map_snapshotter.cpp @@ -76,10 +76,21 @@ void MapSnapshotter::Impl::snapshot(ActorRef<MapSnapshotter::Callback> callback) return transform.latLngToScreenCoordinate(unwrappedLatLng); }}; + // Collect all source attributions + std::vector<std::string> attributions; + for (auto source : map.getStyle().getSources()) { + auto attribution = source->getAttribution(); + if (attribution) { + attributions.push_back(*attribution); + } + } + + // Invoke callback callback.invoke( &MapSnapshotter::Callback::operator(), error, error ? PremultipliedImage() : frontend.readStillImage(), + std::move(attributions), std::move(pointForFn) ); }); diff --git a/platform/default/mbgl/map/map_snapshotter.hpp b/platform/default/mbgl/map/map_snapshotter.hpp index b3cfb3058f..985396e5a3 100644 --- a/platform/default/mbgl/map/map_snapshotter.hpp +++ b/platform/default/mbgl/map/map_snapshotter.hpp @@ -8,6 +8,7 @@ #include <exception> #include <memory> #include <string> +#include <vector> #include <functional> namespace mbgl { @@ -48,7 +49,8 @@ public: LatLngBounds getRegion() const; using PointForFn = std::function<ScreenCoordinate (const LatLng&)>; - using Callback = std::function<void (std::exception_ptr, PremultipliedImage, PointForFn)>; + using Attributions = std::vector<std::string>; + using Callback = std::function<void (std::exception_ptr, PremultipliedImage, Attributions, PointForFn)>; void snapshot(ActorRef<Callback>); private: |