[android] - add convinience step expression (#11641)

This commit is contained in:
Tobrun
2018-04-10 14:26:22 +02:00
committed by GitHub
parent ce75c3b3e7
commit aa43dfd6c1

View File

@@ -2847,6 +2847,134 @@ public class Expression {
return step(input, defaultOutput, Stop.toExpressionArray(stops));
}
/**
* Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of
* input and output values (\"stops\"). The `input` may be any numeric expression (e.g., `[\"get\", \"population\"]`).
* Stop inputs must be numeric literals in strictly ascending order.
* Returns the output value of the stop just less than the input,
* or the first input if the input is less than the first stop.
* <p>
* Example usage:
* </p>
* <pre>
* {@code
* CircleLayer circleLayer = new CircleLayer("layer-id", "source-id");
* circleLayer.setProperties(
* circleRadius(
* step(1.0f, 0.0f,
* literal(1.0f), literal(2.5f),
* literal(10.0f), literal(5.0f)
* )
* );
* }
* </pre>
*
* @param input the input value
* @param defaultOutput the default output expression
* @param stops pair of input and output values
* @return expression
* @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-step">Style specification</a>
*/
public static Expression step(@NonNull Number input, @NonNull Number defaultOutput, Expression... stops) {
return step(literal(input), defaultOutput, stops);
}
/**
* Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of
* input and output values (\"stops\"). The `input` may be any numeric expression (e.g., `[\"get\", \"population\"]`).
* Stop inputs must be numeric literals in strictly ascending order.
* Returns the output value of the stop just less than the input,
* or the first input if the input is less than the first stop.
* <p>
* Example usage:
* </p>
* <pre>
* {@code
* CircleLayer circleLayer = new CircleLayer("layer-id", "source-id");
* circleLayer.setProperties(
* circleRadius(
* step(zoom(), 0.0f,
* literal(1.0f), literal(2.5f),
* literal(10.0f), literal(5.0f)
* )
* );
* }
* </pre>
*
* @param input the input expression
* @param defaultOutput the default output expression
* @param stops pair of input and output values
* @return expression
* @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-step">Style specification</a>
*/
public static Expression step(@NonNull Expression input, @NonNull Number defaultOutput, Expression... stops) {
return step(input, literal(defaultOutput), stops);
}
/**
* Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of
* input and output values (\"stops\"). The `input` may be any numeric expression (e.g., `[\"get\", \"population\"]`).
* Stop inputs must be numeric literals in strictly ascending order.
* Returns the output value of the stop just less than the input,
* or the first input if the input is less than the first stop.
* <p>
* Example usage:
* </p>
* <pre>
* {@code
* CircleLayer circleLayer = new CircleLayer("layer-id", "source-id");
* circleLayer.setProperties(
* circleRadius(
* step(zoom(), 0.0f,
* stop(1, 2.5f),
* stop(10, 5.0f)
* )
* );
* }
* </pre>
*
* @param input the input value
* @param defaultOutput the default output expression
* @param stops pair of input and output values
* @return expression
* @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-step">Style specification</a>
*/
public static Expression step(@NonNull Number input, @NonNull Number defaultOutput, Stop... stops) {
return step(literal(input), defaultOutput, Stop.toExpressionArray(stops));
}
/**
* Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of
* input and output values (\"stops\"). The `input` may be any numeric expression (e.g., `[\"get\", \"population\"]`).
* Stop inputs must be numeric literals in strictly ascending order.
* Returns the output value of the stop just less than the input,
* or the first input if the input is less than the first stop.
* <p>
* Example usage:
* </p>
* <pre>
* {@code
* CircleLayer circleLayer = new CircleLayer("layer-id", "source-id");
* circleLayer.setProperties(
* circleRadius(
* step(zoom(), 0.0f,
* stop(1, 2.5f),
* stop(10, 5.0f)
* )
* );
* }
* </pre>
*
* @param input the input value
* @param defaultOutput the default output expression
* @param stops pair of input and output values
* @return expression
* @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-step">Style specification</a>
*/
public static Expression step(@NonNull Expression input, @NonNull Number defaultOutput, Stop... stops) {
return step(input, defaultOutput, Stop.toExpressionArray(stops));
}
/**
* Produces continuous, smooth results by interpolating between pairs of input and output values (\"stops\").
* The `input` may be any numeric expression (e.g., `[\"get\", \"population\"]`).