summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2017-10-27 20:05:45 +0300
committerFabian Guerra Soto <fabian.guerra@mapbox.com>2017-11-01 09:23:53 -0400
commit953ecae6848dde87c6a1ce8bf51ff1b6e93969f6 (patch)
tree366470508ceecb072d9a539f4442de5ed8f7a63f
parentde9098cf99463e433e9e9d6088865bc63948e567 (diff)
downloadqtlocation-mapboxgl-953ecae6848dde87c6a1ce8bf51ff1b6e93969f6.tar.gz
[core] map snapshotter - add attributions to snapshotter callback
-rw-r--r--platform/default/mbgl/map/map_snapshotter.cpp11
-rw-r--r--platform/default/mbgl/map/map_snapshotter.hpp4
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: