diff options
author | Justin R. Miller <incanus@codesorcery.net> | 2015-03-06 16:53:11 -0800 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2015-03-09 11:57:32 -0700 |
commit | 685aa01043e765eb9b0a176fea6524a5b0ac0f6e (patch) | |
tree | 7fd3b245d2daac07023328e2b588c52caab9128f /src | |
parent | 91dc0ba06f501d3a75bb253fbf7083a22c5111d3 (diff) | |
download | qtlocation-mapboxgl-685aa01043e765eb9b0a176fea6524a5b0ac0f6e.tar.gz |
pass actual feature pbf when filtering layer features
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/map/vector_tile.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/mbgl/map/vector_tile.cpp b/src/mbgl/map/vector_tile.cpp index 72142f0a0a..235a4151d7 100644 --- a/src/mbgl/map/vector_tile.cpp +++ b/src/mbgl/map/vector_tile.cpp @@ -179,13 +179,14 @@ template bool mbgl::evaluate(const FilterExpression&, const GeometryTileTagExtra util::ptr<GeometryTileFeature> FilteredVectorTileLayer::nextMatchingFeature() { while (feature_pbf.next(2)) { - pbf current_feature_pbf = feature_pbf.message(); + pbf matching_feature_pbf = feature_pbf.message(); + pbf current_feature_pbf = matching_feature_pbf; GeometryTileTagExtractor<pbf> extractor(layer); while (current_feature_pbf.next()) { if (current_feature_pbf.tag == 2) { // tags - extractor.setTags(current_feature_pbf); + extractor.setTags(current_feature_pbf.message()); } else if (current_feature_pbf.tag == 3) { // geometry type extractor.setType(GeometryFeatureType(current_feature_pbf.varint())); } else { @@ -194,7 +195,7 @@ util::ptr<GeometryTileFeature> FilteredVectorTileLayer::nextMatchingFeature() { } if (evaluate(filterExpression, extractor)) { - return std::move(std::make_shared<VectorTileFeature>(current_feature_pbf.message(), layer)); + return std::move(std::make_shared<VectorTileFeature>(matching_feature_pbf, layer)); } } |