Add options for Custom Geometry Source types to enable clipping and wrapping geometry (#11041)

This commit is contained in:
Asheem Mamoowala
2018-02-07 12:07:31 -08:00
committed by GitHub
parent e03f7a4d1f
commit 6c5e457590
9 changed files with 101 additions and 7 deletions

View File

@@ -37,18 +37,18 @@ public class CustomGeometrySource extends Source {
* @param provider The tile provider that returns geometry data for this source.
*/
public CustomGeometrySource(String id, GeometryTileProvider provider) {
this(id, provider, new GeoJsonOptions());
this(id, provider, new CustomGeometrySourceOptions());
}
/**
* Create a CustomGeometrySource with non-default GeoJsonOptions.
* Create a CustomGeometrySource with non-default CustomGeometrySourceOptions.
* <p>Supported options are minZoom, maxZoom, buffer, and tolerance.</p>
*
* @param id The source id.
* @param provider The tile provider that returns geometry data for this source.
* @param options GeoJsonOptions.
* @param options CustomGeometrySourceOptions.
*/
public CustomGeometrySource(String id, GeometryTileProvider provider, GeoJsonOptions options) {
public CustomGeometrySource(String id, GeometryTileProvider provider, CustomGeometrySourceOptions options) {
this.provider = provider;
executor = Executors.newFixedThreadPool(4);
initialize(id, options);

View File

@@ -0,0 +1,31 @@
package com.mapbox.mapboxsdk.style.sources;
/**
* Builder class for composing CustomGeometrySource objects.
*/
public class CustomGeometrySourceOptions extends GeoJsonOptions {
/**
* If the data includes wrapped coordinates, setting this to true unwraps the coordinates.
*
* @param wrap defaults to false
* @return the current instance for chaining
*/
public CustomGeometrySourceOptions withWrap(boolean wrap) {
this.put("wrap", wrap);
return this;
}
/**
* If the data includes geometry outside the tile boundaries, setting this to true clips the geometry
* to the tile boundaries.
*
* @param clip defaults to false
* @return the current instance for chaining
*/
public CustomGeometrySourceOptions withClip(boolean clip) {
this.put("clip", clip);
return this;
}
}