Skip to content

Commit 083b5c0

Browse files
author
Cameron Mace
authored
Adds support for polyline6 (#287)
* Added support for precision 6 * made antonio's changes * fixed test
1 parent af701b4 commit 083b5c0

6 files changed

Lines changed: 6185 additions & 17 deletions

File tree

Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,14 @@ geocoding-batch-fixtures:
8383
-o mapbox/libjava-services/src/test/fixtures/geocoding_batch.json
8484

8585
directions-fixtures:
86+
# Directions: polyline geometry with precision 5
8687
curl "https://api.mapbox.com/directions/v5/mapbox/driving/-122.416667,37.783333;-121.900000,37.333333?geometries=polyline&steps=true&access_token=$(MAPBOX_ACCESS_TOKEN)" \
8788
-o mapbox/libjava-services/src/test/fixtures/directions_v5.json
8889

90+
# Directions: polyline geometry with precision 6
91+
curl "https://api.mapbox.com/directions/v5/mapbox/driving/-122.416667,37.783333;-121.900000,37.333333?geometries=polyline6&steps=true&access_token=$(MAPBOX_ACCESS_TOKEN)" \
92+
-o mapbox/libjava-services/src/test/fixtures/directions_v5_precision_6.json
93+
8994
directions-traffic-fixtures:
9095
curl "https://api.mapbox.com/directions/v5/mapbox/driving-traffic/-122.416667,37.783333;-121.900000,37.333333?geometries=polyline&steps=true&access_token=$(MAPBOX_ACCESS_TOKEN)" \
9196
-o mapbox/libjava-services/src/test/fixtures/directions_v5_traffic.json

mapbox/libjava-services/src/main/java/com/mapbox/services/api/directions/v5/DirectionsCriteria.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,19 @@ public class DirectionsCriteria {
4242
public static final String PROFILE_CYCLING = "cycling";
4343

4444
/**
45-
* Format to return route geometry will be encoded polyline.
45+
* Format to return route geometry will be an encoded polyline.
4646
*
4747
* @since 1.0.0
4848
*/
4949
public static final String GEOMETRY_POLYLINE = "polyline";
5050

51+
/**
52+
* Format to return route geometry will be an encoded polyline with precision 6.
53+
*
54+
* @since 2.0.0
55+
*/
56+
public static final String GEOMETRY_POLYLINE6 = "polyline6";
57+
5158
/**
5259
* Format to return route geometry will be geojson. Note that this isn't supported by the SDK.
5360
*

mapbox/libjava-services/src/main/java/com/mapbox/services/api/directions/v5/MapboxDirections.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -148,10 +148,22 @@ public Builder() {
148148
// Set defaults
149149
this.user = DirectionsCriteria.PROFILE_DEFAULT_USER;
150150

151-
// We only support polyline encoded geometries to reduce the size of the response.
152-
// If we need the corresponding LineString object, this SDK can do the decoding with
153-
// LineString.fromPolyline(String polyline, int precision).
154-
this.geometries = DirectionsCriteria.GEOMETRY_POLYLINE;
151+
// by defauly the geometry is polyline with precision 6.
152+
this.geometries = DirectionsCriteria.GEOMETRY_POLYLINE6;
153+
}
154+
155+
/**
156+
* The SDK currently only supports {@code Polyline} geometry (not GeoJSON) to simplify the response. You do have
157+
* the option on whether the precision is 5 or 6 using either {@link DirectionsCriteria#GEOMETRY_POLYLINE} or
158+
* {@link DirectionsCriteria#GEOMETRY_POLYLINE6}.
159+
*
160+
* @param geometries A {@code String} constant which equals either {@code "polyline"} or {@code "polyline6"}.
161+
* @return Builder
162+
* @since 2.0.0
163+
*/
164+
public Builder setGeometry(String geometries) {
165+
this.geometries = geometries;
166+
return this;
155167
}
156168

157169
/*
@@ -378,7 +390,8 @@ public Boolean isAlternatives() {
378390

379391
/**
380392
* @return {@link com.mapbox.services.api.directions.v5.DirectionsCriteria#GEOMETRY_GEOJSON},
381-
* {@link com.mapbox.services.api.directions.v5.DirectionsCriteria#GEOMETRY_POLYLINE}
393+
* {@link com.mapbox.services.api.directions.v5.DirectionsCriteria#GEOMETRY_POLYLINE},
394+
* or {@link com.mapbox.services.api.directions.v5.DirectionsCriteria#GEOMETRY_POLYLINE6}
382395
* @since 1.0.0
383396
*/
384397
public String getGeometries() {

mapbox/libjava-services/src/test/fixtures/directions_v5.json

Lines changed: 2956 additions & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)