def METHOD_NAME(self) -> tuple[list[str], list[dict[str, Any]]]:
    """Compute the alt=fct(dist) array."""
    geom = geojson.loads(self.request.params["geom"], object_hook=geojson.GeoJSON.to_instance)
    layers: list[str]
    if "layers" in self.request.params:
        rasters = {}
        layers = self.request.params["layers"].split(",")
        for layer in layers:
            if layer in self.rasters:
                rasters[layer] = self.rasters[layer]
            else:
                raise HTTPNotFound(f"Layer {layer!s} not found")
    else:
        rasters = self.rasters
        layers = list(rasters.keys())
        layers.sort()
    points: list[dict[str, Any]] = []
    dist = 0
    prev_coord = None
    coords = self._create_points(geom.coordinates, int(self.request.params["nbPoints"]))
    for coord in coords:
        if prev_coord is not None:
            dist += self._dist(prev_coord, coord)
        values = {}
        for ref in list(rasters.keys()):
            value = self._get_raster_value(self.rasters[ref], ref, coord[0], coord[1])
            values[ref] = value
        # 10cm accuracy is enough for distances
        rounded_dist = Decimal(str(dist)).quantize(Decimal("0.1"))
        points.append({"dist": rounded_dist, "values": values, "x": coord[0], "y": coord[1]})
        prev_coord = coord
    return layers, points