#include #include #include #include #include namespace mbgl { GeoJSONTile::GeoJSONTile(const OverscaledTileID& overscaledTileID, std::string sourceID_, const TileParameters& parameters, mapbox::geometry::feature_collection features) : GeometryTile(overscaledTileID, sourceID_, parameters) { updateData(std::move(features)); } void GeoJSONTile::updateData(mapbox::geometry::feature_collection features) { setData(std::make_unique(std::move(features))); } void GeoJSONTile::setNecessity(Necessity) {} void GeoJSONTile::querySourceFeatures( std::vector& result, const SourceQueryOptions& options) { // Ignore the sourceLayer, there is only one auto layer = getData()->getLayer({}); if (layer) { auto featureCount = layer->featureCount(); for (std::size_t i = 0; i < featureCount; i++) { auto feature = layer->getFeature(i); // Apply filter, if any if (options.filter && !(*options.filter)(*feature)) { continue; } result.push_back(convertFeature(*feature, id.canonical)); } } } } // namespace mbgl