diff options
author | Chris Loer <chris.loer@gmail.com> | 2017-10-30 11:07:56 -0700 |
---|---|---|
committer | Chris Loer <chris.loer@gmail.com> | 2017-10-30 11:07:56 -0700 |
commit | 75ed16f3db666177525ead4af2273ef09062733e (patch) | |
tree | 83cce18300f240f98058d8f1c592556ad2581cc9 /src/mbgl/geometry/feature_index.cpp | |
parent | 435ea703ca773e2ea266525e2d036ec6252a6f99 (diff) | |
download | qtlocation-mapboxgl-75ed16f3db666177525ead4af2273ef09062733e.tar.gz |
Store sourceID in IndexedSubfeature so that queryRenderedSymbols can filter to appropriate source.
TODO: should sourceID have a stronger type than std::string?
Diffstat (limited to 'src/mbgl/geometry/feature_index.cpp')
-rw-r--r-- | src/mbgl/geometry/feature_index.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mbgl/geometry/feature_index.cpp b/src/mbgl/geometry/feature_index.cpp index 77335bce36..ec6a3b5c2c 100644 --- a/src/mbgl/geometry/feature_index.cpp +++ b/src/mbgl/geometry/feature_index.cpp @@ -28,7 +28,7 @@ void FeatureIndex::insert(const GeometryCollection& geometries, for (const auto& ring : geometries) { // TODO: Templatize grid units so feature index can stick with integers? auto envelope = mapbox::geometry::envelope(ring); - grid.insert(IndexedSubfeature { index, sourceLayerName, bucketName, sortIndex++, 0, 0, 0, 0, 0 }, // TODO: FeatureIndex doesn't need to care about tileIDs, make this cleaner + grid.insert(IndexedSubfeature { index, "", sourceLayerName, bucketName, sortIndex++, 0, 0, 0, 0, 0 }, // TODO: FeatureIndex doesn't need to care about tileIDs or source IDS, make this cleaner {convertPoint<float>(envelope.min), convertPoint<float>(envelope.max)}); } } @@ -50,6 +50,7 @@ void FeatureIndex::query( const RenderedQueryOptions& queryOptions, const GeometryTileData& geometryTileData, const CanonicalTileID& tileID, + const std::string& sourceID, const std::vector<const RenderLayer*>& layers, const CollisionIndex& collisionIndex, const float additionalQueryRadius) const { @@ -81,7 +82,7 @@ void FeatureIndex::query( addFeature(result, indexedFeature, queryGeometry, queryOptions, geometryTileData, tileID, layers, bearing, pixelsToTileUnits); } - std::vector<IndexedSubfeature> symbolFeatures = collisionIndex.queryRenderedSymbols(queryGeometry, UnwrappedTileID(0, tileID)); // TODO: hook up + std::vector<IndexedSubfeature> symbolFeatures = collisionIndex.queryRenderedSymbols(queryGeometry, UnwrappedTileID(0, tileID), sourceID); // TODO: hook up std::sort(symbolFeatures.begin(), symbolFeatures.end(), topDownSymbols); for (const auto& symbolFeature : symbolFeatures) { addFeature(result, symbolFeature, queryGeometry, queryOptions, geometryTileData, tileID, layers, bearing, pixelsToTileUnits); |