diff options
author | tobrun <tobrun.van.nuland@gmail.com> | 2018-12-20 19:34:55 +0100 |
---|---|---|
committer | Tobrun <tobrun@mapbox.com> | 2019-01-15 17:15:23 +0100 |
commit | 9ba0737e6a653cafec5d02982c06c31da970f6ca (patch) | |
tree | 7d6984708ee7518c60c738d380d5288b0d510792 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style | |
parent | 59cfce30849615c5657c2079c5912dd61254a25e (diff) | |
download | qtlocation-mapboxgl-9ba0737e6a653cafec5d02982c06c31da970f6ca.tar.gz |
[android] - expose query feature extensions
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/sources/GeoJsonSource.java | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/sources/GeoJsonSource.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/sources/GeoJsonSource.java index c59cfeaf0b..9e809c2ce0 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/sources/GeoJsonSource.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/sources/GeoJsonSource.java @@ -285,6 +285,54 @@ public class GeoJsonSource extends Source { return features != null ? Arrays.asList(features) : new ArrayList<Feature>(); } + /** + * Returns the children of a cluster (on the next zoom level) given its id (cluster_id value from feature properties). + * <p> + * Requires configuring this source as a cluster by calling {@link GeoJsonOptions#withCluster(boolean)}. + * </p> + * + * @param cluster cluster from which to retrieve children from + * @return a list of features for the underlying children + */ + @NonNull + public FeatureCollection getClusterChildren(@NonNull Feature cluster) { + checkThread(); + return FeatureCollection.fromFeatures(nativeGetClusterChildren(cluster)); + } + + /** + * Returns all the leaves of a cluster (given its cluster_id), with pagination support: limit is the number of leaves + * to return (set to Infinity for all points), and offset is the amount of points to skip (for pagination). + * <p> + * Requires configuring this source as a cluster by calling {@link GeoJsonOptions#withCluster(boolean)}. + * </p> + * + * @param cluster cluster from which to retrieve leaves from + * @param limit limit is the number of points to return + * @param offset offset is the amount of points to skip (for pagination) + * @return a list of features for the underlying leaves + */ + @NonNull + public FeatureCollection getClusterLeaves(@NonNull Feature cluster, long limit, long offset) { + checkThread(); + return FeatureCollection.fromFeatures(nativeGetClusterLeaves(cluster, limit, offset)); + } + + /** + * Returns the zoom on which the cluster expands into several children (useful for "click to zoom" feature) + * given the cluster's cluster_id (cluster_id value from feature properties). + * <p> + * Requires configuring this source as a cluster by calling {@link GeoJsonOptions#withCluster(boolean)}. + * </p> + * + * @param cluster cluster from which to retrieve the expansion zoom from + * @return the zoom on which the cluster expands into several children + */ + public int getClusterExpansionZoom(@NonNull Feature cluster) { + checkThread(); + return nativeGetClusterExpansionZoom(cluster); + } + @Keep protected native void initialize(String layerId, Object options); @@ -311,6 +359,15 @@ public class GeoJsonSource extends Source { @Keep private native Feature[] querySourceFeatures(Object[] filter); + @Keep + private native Feature[] nativeGetClusterChildren(Feature feature); + + @Keep + private native Feature[] nativeGetClusterLeaves(Feature feature, long limit, long offset); + + @Keep + private native int nativeGetClusterExpansionZoom(Feature feature); + @Override @Keep protected native void finalize() throws Throwable; |