[core] query source features
This commit is contained in:
committed by
Jesse Bounds
parent
4d325879b8
commit
517659b1b4
@@ -8,6 +8,7 @@
|
||||
#include <mbgl/util/image.hpp>
|
||||
#include <mbgl/util/io.hpp>
|
||||
#include <mbgl/util/run_loop.hpp>
|
||||
#include <mbgl/style/source.hpp>
|
||||
|
||||
using namespace mbgl;
|
||||
using namespace mbgl::style;
|
||||
@@ -81,3 +82,43 @@ TEST(Query, QueryRenderedFeaturesFilter) {
|
||||
auto features3 = test.map.queryRenderedFeatures(zz, {{ }, { gtFilter }});
|
||||
EXPECT_EQ(features3.size(), 1u);
|
||||
}
|
||||
|
||||
TEST(Query, QuerySourceFeatures) {
|
||||
QueryTest test;
|
||||
|
||||
auto features1 = test.map.getSource("source3")->querySourceFeatures();
|
||||
EXPECT_EQ(features1.size(), 1u);
|
||||
}
|
||||
|
||||
TEST(Query, QuerySourceFeaturesOptionValidation) {
|
||||
QueryTest test;
|
||||
|
||||
// GeoJSONSource, doesn't require a layer id
|
||||
auto features = test.map.getSource("source3")->querySourceFeatures();
|
||||
ASSERT_EQ(features.size(), 1u);
|
||||
|
||||
// VectorSource, requires a layer id
|
||||
features = test.map.getSource("source5")->querySourceFeatures();
|
||||
ASSERT_EQ(features.size(), 0u);
|
||||
|
||||
// RasterSource, not supported
|
||||
features = test.map.getSource("source6")->querySourceFeatures();
|
||||
ASSERT_EQ(features.size(), 0u);
|
||||
}
|
||||
|
||||
TEST(Query, QuerySourceFeaturesFilter) {
|
||||
QueryTest test;
|
||||
|
||||
const EqualsFilter eqFilter = { "key1", std::string("value1") };
|
||||
auto features1 = test.map.getSource("source4")->querySourceFeatures({{}, { eqFilter }});
|
||||
EXPECT_EQ(features1.size(), 1u);
|
||||
|
||||
const IdentifierNotEqualsFilter idNotEqFilter = { std::string("feature1") };
|
||||
auto features2 = test.map.getSource("source4")->querySourceFeatures({{}, { idNotEqFilter }});
|
||||
EXPECT_EQ(features2.size(), 0u);
|
||||
|
||||
const GreaterThanFilter gtFilter = { "key2", 1.0 };
|
||||
auto features3 = test.map.getSource("source4")->querySourceFeatures({{}, { gtFilter }});
|
||||
EXPECT_EQ(features3.size(), 1u);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user