[android] - expose query feature extensions

This commit is contained in:
tobrun
2018-12-20 19:34:55 +01:00
committed by Tobrun
parent 59cfce3084
commit 9ba0737e6a
14 changed files with 6463 additions and 98 deletions

View File

@@ -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;