summaryrefslogtreecommitdiff
path: root/src/mbgl/style/source_impl.cpp
diff options
context:
space:
mode:
authorAsheem Mamoowala <asheemm@gmail.com>2017-02-21 18:34:45 -0800
committerIvo van Dongen <ivovandongen@users.noreply.github.com>2017-03-04 15:42:07 -0800
commit60d10dd27df38ac4e97214d1cd514198c381695c (patch)
treef4ce0ecbf3a7eeb5c19f994d02152fc624b458d9 /src/mbgl/style/source_impl.cpp
parentac4e13416a36905b35401fc1a982c680ca37a3d0 (diff)
downloadqtlocation-mapboxgl-60d10dd27df38ac4e97214d1cd514198c381695c.tar.gz
[core] Add support for queryRenderedFeatures filter
Diffstat (limited to 'src/mbgl/style/source_impl.cpp')
-rw-r--r--src/mbgl/style/source_impl.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/mbgl/style/source_impl.cpp b/src/mbgl/style/source_impl.cpp
index 003df4f6b1..22e51f8885 100644
--- a/src/mbgl/style/source_impl.cpp
+++ b/src/mbgl/style/source_impl.cpp
@@ -4,12 +4,12 @@
#include <mbgl/renderer/render_tile.hpp>
#include <mbgl/renderer/painter.hpp>
#include <mbgl/style/update_parameters.hpp>
-#include <mbgl/style/query_parameters.hpp>
#include <mbgl/text/placement_config.hpp>
#include <mbgl/util/logging.hpp>
#include <mbgl/math/clamp.hpp>
#include <mbgl/util/tile_cover.hpp>
#include <mbgl/util/enum.hpp>
+#include <mbgl/map/query.hpp>
#include <mbgl/algorithm/update_renderables.hpp>
#include <mbgl/algorithm/generate_clip_ids.hpp>
@@ -200,17 +200,19 @@ void Source::Impl::reloadTiles() {
}
}
-std::unordered_map<std::string, std::vector<Feature>> Source::Impl::queryRenderedFeatures(const QueryParameters& parameters) const {
+std::unordered_map<std::string, std::vector<Feature>> Source::Impl::queryRenderedFeatures(const ScreenLineString& geometry,
+ const TransformState& transformState,
+ const QueryOptions& options) const {
std::unordered_map<std::string, std::vector<Feature>> result;
- if (renderTiles.empty() || parameters.geometry.empty()) {
+ if (renderTiles.empty() || geometry.empty()) {
return result;
}
LineString<double> queryGeometry;
- for (const auto& p : parameters.geometry) {
+ for (const auto& p : geometry) {
queryGeometry.push_back(TileCoordinate::fromScreenCoordinate(
- parameters.transformState, 0, { p.x, parameters.transformState.getSize().height - p.y }).p);
+ transformState, 0, { p.x, transformState.getSize().height - p.y }).p);
}
mapbox::geometry::box<double> box = mapbox::geometry::envelope(queryGeometry);
@@ -245,8 +247,8 @@ std::unordered_map<std::string, std::vector<Feature>> Source::Impl::queryRendere
renderTile.tile.queryRenderedFeatures(result,
tileSpaceQueryGeometry,
- parameters.transformState,
- parameters.layerIDs);
+ transformState,
+ options);
}
return result;