[core, ios, macos, android, node] Heatmap layer (#11046)

Co-Authored-By: Konstantin Käfer <mail@kkaefer.com>
Co-Authored-By: Anand Thakker <anandthakker@users.noreply.github.com>
Co-Authored-By: Minh Nguyễn <1ec5@users.noreply.github.com>
This commit is contained in:
Vladimir Agafonkin
2018-02-15 17:38:23 +02:00
committed by GitHub
parent 1fdec7a5c1
commit 82de856c94
90 changed files with 4570 additions and 61 deletions

View File

@@ -0,0 +1,221 @@
// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`.
package com.mapbox.mapboxsdk.style.layers;
import android.support.annotation.ColorInt;
import android.support.annotation.NonNull;
import android.support.annotation.UiThread;
import static com.mapbox.mapboxsdk.utils.ColorUtils.rgbaToColor;
import com.mapbox.mapboxsdk.style.layers.TransitionOptions;
/**
* A heatmap.
*
* @see <a href="https://www.mapbox.com/mapbox-gl-style-spec/#layers-heatmap">The online documentation</a>
*/
@UiThread
public class HeatmapLayer extends Layer {
/**
* Creates a HeatmapLayer.
*
* @param nativePtr pointer used by core
*/
public HeatmapLayer(long nativePtr) {
super(nativePtr);
}
/**
* Creates a HeatmapLayer.
*
* @param layerId the id of the layer
* @param sourceId the id of the source
*/
public HeatmapLayer(String layerId, String sourceId) {
initialize(layerId, sourceId);
}
protected native void initialize(String layerId, String sourceId);
/**
* Set the source layer.
*
* @param sourceLayer the source layer to set
*/
public void setSourceLayer(String sourceLayer) {
nativeSetSourceLayer(sourceLayer);
}
/**
* Set the source Layer.
*
* @param sourceLayer the source layer to set
* @return This
*/
public HeatmapLayer withSourceLayer(String sourceLayer) {
setSourceLayer(sourceLayer);
return this;
}
/**
* Get the source layer.
*
* @return sourceLayer the source layer to get
*/
public String getSourceLayer() {
return nativeGetSourceLayer();
}
/**
* Set a single filter.
*
* @param filter the filter to set
*/
public void setFilter(Filter.Statement filter) {
nativeSetFilter(filter.toArray());
}
/**
* Set a single filter.
*
* @param filter the filter to set
* @return This
*/
public HeatmapLayer withFilter(Filter.Statement filter) {
setFilter(filter);
return this;
}
/**
* Set a property or properties.
*
* @param properties the var-args properties
* @return This
*/
public HeatmapLayer withProperties(@NonNull PropertyValue<?>... properties) {
setProperties(properties);
return this;
}
// Property getters
/**
* Get the HeatmapRadius property
*
* @return property wrapper value around Float
*/
@SuppressWarnings("unchecked")
public PropertyValue<Float> getHeatmapRadius() {
return (PropertyValue<Float>) new PropertyValue("heatmap-radius", nativeGetHeatmapRadius());
}
/**
* Get the HeatmapRadius property transition options
*
* @return transition options for Float
*/
public TransitionOptions getHeatmapRadiusTransition() {
return nativeGetHeatmapRadiusTransition();
}
/**
* Set the HeatmapRadius property transition options
*
* @param options transition options for Float
*/
public void setHeatmapRadiusTransition(TransitionOptions options) {
nativeSetHeatmapRadiusTransition(options.getDuration(), options.getDelay());
}
/**
* Get the HeatmapWeight property
*
* @return property wrapper value around Float
*/
@SuppressWarnings("unchecked")
public PropertyValue<Float> getHeatmapWeight() {
return (PropertyValue<Float>) new PropertyValue("heatmap-weight", nativeGetHeatmapWeight());
}
/**
* Get the HeatmapIntensity property
*
* @return property wrapper value around Float
*/
@SuppressWarnings("unchecked")
public PropertyValue<Float> getHeatmapIntensity() {
return (PropertyValue<Float>) new PropertyValue("heatmap-intensity", nativeGetHeatmapIntensity());
}
/**
* Get the HeatmapIntensity property transition options
*
* @return transition options for Float
*/
public TransitionOptions getHeatmapIntensityTransition() {
return nativeGetHeatmapIntensityTransition();
}
/**
* Set the HeatmapIntensity property transition options
*
* @param options transition options for Float
*/
public void setHeatmapIntensityTransition(TransitionOptions options) {
nativeSetHeatmapIntensityTransition(options.getDuration(), options.getDelay());
}
/**
* Get the HeatmapOpacity property
*
* @return property wrapper value around Float
*/
@SuppressWarnings("unchecked")
public PropertyValue<Float> getHeatmapOpacity() {
return (PropertyValue<Float>) new PropertyValue("heatmap-opacity", nativeGetHeatmapOpacity());
}
/**
* Get the HeatmapOpacity property transition options
*
* @return transition options for Float
*/
public TransitionOptions getHeatmapOpacityTransition() {
return nativeGetHeatmapOpacityTransition();
}
/**
* Set the HeatmapOpacity property transition options
*
* @param options transition options for Float
*/
public void setHeatmapOpacityTransition(TransitionOptions options) {
nativeSetHeatmapOpacityTransition(options.getDuration(), options.getDelay());
}
private native Object nativeGetHeatmapRadius();
private native TransitionOptions nativeGetHeatmapRadiusTransition();
private native void nativeSetHeatmapRadiusTransition(long duration, long delay);
private native Object nativeGetHeatmapWeight();
private native Object nativeGetHeatmapIntensity();
private native TransitionOptions nativeGetHeatmapIntensityTransition();
private native void nativeSetHeatmapIntensityTransition(long duration, long delay);
private native Object nativeGetHeatmapOpacity();
private native TransitionOptions nativeGetHeatmapOpacityTransition();
private native void nativeSetHeatmapOpacityTransition(long duration, long delay);
@Override
protected native void finalize() throws Throwable;
}

View File

@@ -1515,6 +1515,138 @@ public class PropertyFactory {
return new PaintPropertyValue<>("circle-stroke-opacity", function);
}
/**
* Radius of influence of one heatmap point in density-independent pixels. Increasing the value makes the heatmap smoother, but less detailed.
*
* @param value a Float value
* @return property wrapper around Float
*/
public static PropertyValue<Float> heatmapRadius(Float value) {
return new PaintPropertyValue<>("heatmap-radius", value);
}
/**
* Radius of influence of one heatmap point in density-independent pixels. Increasing the value makes the heatmap smoother, but less detailed.
*
* @param expression an expression statement
* @return property wrapper around an expression statement
*/
public static PropertyValue<Expression> heatmapRadius(Expression expression) {
return new PaintPropertyValue<>("heatmap-radius", expression);
}
/**
* Radius of influence of one heatmap point in density-independent pixels. Increasing the value makes the heatmap smoother, but less detailed.
*
* @param <T> the function input type
* @param function a wrapper function for Float
* @return property wrapper around a Float function
*/
@Deprecated
public static <T> PropertyValue<Function<T, Float>> heatmapRadius(Function<T, Float> function) {
return new PaintPropertyValue<>("heatmap-radius", function);
}
/**
* A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.
*
* @param value a Float value
* @return property wrapper around Float
*/
public static PropertyValue<Float> heatmapWeight(Float value) {
return new PaintPropertyValue<>("heatmap-weight", value);
}
/**
* A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.
*
* @param expression an expression statement
* @return property wrapper around an expression statement
*/
public static PropertyValue<Expression> heatmapWeight(Expression expression) {
return new PaintPropertyValue<>("heatmap-weight", expression);
}
/**
* A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.
*
* @param <T> the function input type
* @param function a wrapper function for Float
* @return property wrapper around a Float function
*/
@Deprecated
public static <T> PropertyValue<Function<T, Float>> heatmapWeight(Function<T, Float> function) {
return new PaintPropertyValue<>("heatmap-weight", function);
}
/**
* Similar to {@link PropertyFactory#heatmapWeight} but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.
*
* @param value a Float value
* @return property wrapper around Float
*/
public static PropertyValue<Float> heatmapIntensity(Float value) {
return new PaintPropertyValue<>("heatmap-intensity", value);
}
/**
* Similar to {@link PropertyFactory#heatmapWeight} but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.
*
* @param expression an expression statement
* @return property wrapper around an expression statement
*/
public static PropertyValue<Expression> heatmapIntensity(Expression expression) {
return new PaintPropertyValue<>("heatmap-intensity", expression);
}
/**
* Similar to {@link PropertyFactory#heatmapWeight} but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.
*
* @param <Z> the zoom parameter type
* @param function a wrapper {@link CameraFunction} for Float
* @return property wrapper around a Float function
*/
@Deprecated
public static <Z extends Number> PropertyValue<CameraFunction<Z, Float>> heatmapIntensity(CameraFunction<Z, Float> function) {
return new PaintPropertyValue<>("heatmap-intensity", function);
}
/**
* The global opacity at which the heatmap layer will be drawn.
*
* @param value a Float value
* @return property wrapper around Float
*/
public static PropertyValue<Float> heatmapOpacity(Float value) {
return new PaintPropertyValue<>("heatmap-opacity", value);
}
/**
* The global opacity at which the heatmap layer will be drawn.
*
* @param expression an expression statement
* @return property wrapper around an expression statement
*/
public static PropertyValue<Expression> heatmapOpacity(Expression expression) {
return new PaintPropertyValue<>("heatmap-opacity", expression);
}
/**
* The global opacity at which the heatmap layer will be drawn.
*
* @param <Z> the zoom parameter type
* @param function a wrapper {@link CameraFunction} for Float
* @return property wrapper around a Float function
*/
@Deprecated
public static <Z extends Number> PropertyValue<CameraFunction<Z, Float>> heatmapOpacity(CameraFunction<Z, Float> function) {
return new PaintPropertyValue<>("heatmap-opacity", function);
}
/**
* The opacity of the entire fill extrusion layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.
*