From 47917b23ee8336d8d709a785e3dc3b908df43278 Mon Sep 17 00:00:00 2001 From: Jens Verrydt Date: Wed, 12 Jun 2024 13:56:05 +0200 Subject: [PATCH] feat: allow overriding of color_formula, expression and colormap from url params --- titiler/stacapi/factory.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/titiler/stacapi/factory.py b/titiler/stacapi/factory.py index f8751af..5e78239 100644 --- a/titiler/stacapi/factory.py +++ b/titiler/stacapi/factory.py @@ -781,6 +781,11 @@ def get_tile( # noqa: C901 ] = f"{start_datetime.strftime('%Y-%m-%dT%H:%M:%SZ')}/{end_datetime.strftime('%Y-%m-%dT%H:%M:%SZ')}" query_params = layer.get("render") or {} + if "color_formula" in req: + query_params["color_formula"] = req["color_formula"] + if "expression" in req: + query_params["expression"] = req["expression"] + layer_params = get_dependency_params( dependency=self.layer_dependency, query_params=query_params, @@ -955,6 +960,26 @@ def register_routes(self): # noqa: C901 "name": "TileCol", "in": "query", }, + { + "required": False, + "schema": { + "title": "Color Formula", + "description": "rio-color formula (info: https://github.com/mapbox/rio-color)", + "type": "string", + }, + "name": "color_formula", + "in": "query", + }, + { + "required": False, + "schema": { + "title": "Colormap name", + "description": "JSON encoded custom Colormap", + "type": "string", + }, + "name": "colormap", + "in": "query", + }, ################ # GetFeatureInfo # InfoFormat @@ -1122,7 +1147,7 @@ def web_map_tile_service( # noqa: C901 colormap = get_dependency_params( dependency=self.colormap_dependency, - query_params=layer.get("render") or {}, + query_params={"colormap": req["colormap"]} if "colormap" in req else layer.get("render") or {}, ) content, media_type = render_image(