Fix for raster dem encoding override in style.json (#3570)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Scott Hoyt
2025-08-01 04:50:09 -07:00
committed by GitHub
parent 7d46c00529
commit ca5f79c12d
28 changed files with 347 additions and 285 deletions

View File

@@ -2,6 +2,7 @@
#include <mbgl/style/conversion/coordinate.hpp>
#include <mbgl/style/conversion/geojson.hpp>
#include <mbgl/style/conversion/geojson_options.hpp>
#include <mbgl/style/conversion/raster_dem_options.hpp>
#include <mbgl/style/conversion/tileset.hpp>
#include <mbgl/style/conversion_impl.hpp>
#include <mbgl/style/sources/geojson_source.hpp>
@@ -76,7 +77,14 @@ static std::optional<std::unique_ptr<Source>> convertRasterDEMSource(const std::
tileSize = static_cast<uint16_t>(*size);
}
return {std::make_unique<RasterDEMSource>(id, std::move(*urlOrTileset), tileSize)};
/*
TODO: Refactor TileJSON parsing responsibilities. Currently `Tileset` handles full TileJSON parsing with optional
parameters. Since style.json can contain TileJSON parameter overrides or non-TileJSON spec parameters, a
separate mechanism is needed. Ideally these two pathways share parsing logic.
*/
std::optional<RasterDEMOptions> options = convert<RasterDEMOptions>(value, error);
return {std::make_unique<RasterDEMSource>(id, std::move(*urlOrTileset), tileSize, options)};
}
static std::optional<std::unique_ptr<Source>> convertVectorSource(const std::string& id,