Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Mapbox welcomes participation and contributions from everyone.
### main
- Added `Incident.affectedRoadNames`. [#1457](https://github.com/mapbox/mapbox-java/pull/1457)
- Added `StepIntersections.trafficSignal`,`StepIntersections.stopSign` and `StepIntersections.yieldSign`. [#1464](https://github.com/mapbox/mapbox-java/pull/1464)
- Fixed an issue where the `MapMatchingMathcing#routeIndex` wasn't correctly assigned. [#1463](https://github.com/mapbox/mapbox-java/pull/1463)

### v6.6.0 - Jun 30, 2022
- Fixed `RouteOptions#toUrl` for a case when `RouteOptions` was deserialized from a json generated by an old version of mapbox-java. [#1447](https://github.com/mapbox/mapbox-java/pull/1447)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ private boolean isNotSuccessful(Response<MapMatchingResponse> response) {
private List<MapMatchingMatching> generateRouteOptions(Response<MapMatchingResponse> response) {
List<MapMatchingMatching> matchings = response.body().matchings();
List<MapMatchingMatching> modifiedMatchings = new ArrayList<>();
for (MapMatchingMatching matching : matchings) {
for (int i = 0; i < matchings.size(); i++) {
MapMatchingMatching matching = matchings.get(i);
modifiedMatchings.add(
matching.toBuilder()
.routeOptions(
Expand All @@ -76,6 +77,7 @@ private List<MapMatchingMatching> generateRouteOptions(Response<MapMatchingRespo
.build()
)
.requestUuid(PLACEHOLDER_UUID)
.routeIndex(String.valueOf(i))
.build()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.mapbox.api.directions.v5.DirectionsCriteria;
import com.mapbox.api.directions.v5.models.RouteOptions;
import com.mapbox.api.directions.v5.utils.FormatUtils;
import com.mapbox.api.matching.v5.models.MapMatchingMatching;
import com.mapbox.api.matching.v5.models.MapMatchingResponse;
import com.mapbox.core.TestUtils;
import com.mapbox.core.exceptions.ServicesException;
Expand All @@ -38,6 +39,8 @@
public class MapboxMapMatchingTest extends TestUtils {

private static final String MAP_MATCHING_FIXTURE = "map_matching_v5_polyline.json";
private static final String MAP_MATCHING_FIXTURE_MULTI =
"map_matching_v5_polyline_multi_match.json";
private static final String MAP_MATCHING_ERROR_FIXTURE = "mapmatching_nosegment_v5_polyline.json";
private static final String MAP_MATCHING_APPROACHES = "mapmatching_v5_approaches.json";
private static final String MAP_MATCHING_WAYPOINT_NAMES_FIXTURE = "mapmatching_v5_waypoint_names.json";
Expand Down Expand Up @@ -214,7 +217,7 @@ public void clientAppName_doesSetInHeaderCorrectly2() throws Exception {
}

@Test
public void mapMatchingToDirectionsRoute() throws Exception {
public void toDirectionsRoute() throws Exception {
MapboxMapMatching mapMatching = MapboxMapMatching.builder()
.profile(PROFILE_DRIVING)
.coordinates(coordinates)
Expand All @@ -224,6 +227,51 @@ public void mapMatchingToDirectionsRoute() throws Exception {
assertNotNull(mapMatching.executeCall().body().matchings().get(0).toDirectionRoute());
}

@Test
public void toDirectionsRoute_routeIndex() throws Exception {
MapboxMapMatching mapMatching = MapboxMapMatching.builder()
.profile(PROFILE_DRIVING)
.coordinates(coordinates)
.baseUrl(mockUrl.toString())
.accessToken(ACCESS_TOKEN)
.build();
assertEquals(
"0",
Comment thread
LukasPaczos marked this conversation as resolved.
mapMatching.executeCall().body().matchings().get(0).toDirectionRoute().routeIndex()
);
}

@Test
public void toDirectionsRoute_routeIndex_multi_match() throws Exception {
server.setDispatcher(new okhttp3.mockwebserver.Dispatcher() {
@Override
public MockResponse dispatch(RecordedRequest request) throws InterruptedException {
String resource = MAP_MATCHING_FIXTURE_MULTI;
try {
String response = loadJsonFixture(resource);
return new MockResponse().setBody(response);
} catch (IOException ioException) {
throw new RuntimeException(ioException);
}
}
});

MapboxMapMatching mapMatching = MapboxMapMatching.builder()
.profile(PROFILE_DRIVING)
.coordinates(coordinates)
.baseUrl(mockUrl.toString())
.accessToken(ACCESS_TOKEN)
.build();
List<MapMatchingMatching> matchings = mapMatching.executeCall().body().matchings();
assertEquals(
"0",
matchings.get(0).toDirectionRoute().routeIndex()
);
assertEquals(
"1",
matchings.get(1).toDirectionRoute().routeIndex()
);
}

@Test
public void accessToken_doesGetPlacedInUrlCorrectly() throws Exception {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"matchings":[{"confidence":0.8903306361380453,"geometry":"}_m_Iu{{pAEZwA{@cC}AqBsAaCyA","legs":[{"summary":"Adalbertstraße","weight":113.7,"duration":101.1,"steps":[{"intersections":[{"classes":["restricted"],"out":0,"entry":[true],"bearings":[292],"location":[13.418992,52.500625]}],"driving_side":"right","geometry":"}_m_Iu{{pA?BEV","mode":"driving","maneuver":{"bearing_after":292,"bearing_before":0,"location":[13.418992,52.500625],"modifier":"left","type":"depart","instruction":"Kör åt nordväst"},"weight":19.3,"duration":6.7,"name":"","distance":10.5},{"intersections":[{"out":0,"in":1,"entry":[true,false,true],"bearings":[30,120,210],"location":[13.418848,52.500661]}],"driving_side":"right","geometry":"c`m_Iyz{pAoAu@GE","mode":"driving","maneuver":{"bearing_after":22,"bearing_before":292,"location":[13.418848,52.500661],"modifier":"right","type":"turn","instruction":"Sväng höger in på Adalbertstraße"},"weight":94.4,"duration":94.4,"name":"Adalbertstraße","distance":52.5},{"intersections":[{"in":0,"entry":[true],"bearings":[202],"location":[13.419148,52.501096]}],"driving_side":"right","geometry":"{bm_Iu|{pA","mode":"driving","maneuver":{"bearing_after":0,"bearing_before":22,"location":[13.419148,52.501096],"modifier":"left","type":"arrive","instruction":"Du är framme vid din 1:a destination, till vänster"},"weight":0,"duration":0,"name":"Adalbertstraße","distance":0}],"distance":63},{"summary":"Adalbertstraße","weight":158,"duration":146,"steps":[{"intersections":[{"out":0,"entry":[true],"bearings":[22],"location":[13.419148,52.501096]},{"out":0,"in":2,"entry":[true,true,false,true],"bearings":[30,120,195,300],"location":[13.419277,52.501287]}],"driving_side":"right","geometry":"{bm_Iu|{pAe@Ym@a@o@a@","mode":"driving","maneuver":{"bearing_after":22,"bearing_before":0,"location":[13.419148,52.501096],"modifier":"left","type":"depart","instruction":"Kör åt nordost på Adalbertstraße"},"weight":158,"duration":146,"name":"Adalbertstraße","distance":80},{"intersections":[{"in":0,"entry":[true],"bearings":[204],"location":[13.41962,52.501755]}],"driving_side":"right","geometry":"_gm_Is_|pA","mode":"driving","maneuver":{"bearing_after":0,"bearing_before":24,"location":[13.41962,52.501755],"modifier":"right","type":"arrive","instruction":"Du är framme vid din 2:a destination, till höger"},"weight":0,"duration":0,"name":"Adalbertstraße","distance":0}],"distance":80},{"summary":"Adalbertstraße","weight":109.4,"duration":109.3,"steps":[{"intersections":[{"out":0,"entry":[true],"bearings":[24],"location":[13.41962,52.501755]},{"out":0,"in":2,"entry":[true,true,false,true],"bearings":[30,120,210,300],"location":[13.419982,52.502249]}],"driving_side":"right","geometry":"_gm_Is_|pAaBgAOK","mode":"driving","maneuver":{"bearing_after":24,"bearing_before":0,"location":[13.41962,52.501755],"modifier":"right","type":"depart","instruction":"Kör åt nordost på Adalbertstraße"},"weight":109.4,"duration":109.3,"name":"Adalbertstraße","distance":70.4},{"intersections":[{"in":0,"entry":[true],"bearings":[203],"location":[13.420041,52.502334]}],"driving_side":"right","geometry":"qjm_Igb|pA","mode":"driving","maneuver":{"bearing_after":0,"bearing_before":23,"location":[13.420041,52.502334],"modifier":"left","type":"arrive","instruction":"Du är framme vid din 3:e destination, till vänster"},"weight":0,"duration":0,"name":"Adalbertstraße","distance":0}],"distance":70.4},{"summary":"Adalbertstraße","weight":7.1,"duration":7.1,"steps":[{"intersections":[{"out":0,"entry":[true],"bearings":[23],"location":[13.420041,52.502334]}],"driving_side":"right","geometry":"qjm_Igb|pAaCyA","mode":"driving","maneuver":{"bearing_after":23,"bearing_before":0,"location":[13.420041,52.502334],"modifier":"left","type":"depart","instruction":"Kör åt nordost på Adalbertstraße"},"weight":7.1,"duration":7.1,"name":"Adalbertstraße","distance":78.5},{"intersections":[{"in":0,"entry":[true],"bearings":[203],"location":[13.420494,52.502984]}],"driving_side":"right","geometry":"snm_Iae|pA","mode":"driving","maneuver":{"bearing_after":0,"bearing_before":23,"location":[13.420494,52.502984],"modifier":"right","type":"arrive","instruction":"Du är framme vid din destination, till höger"},"weight":0,"duration":0,"name":"Adalbertstraße","distance":0}],"distance":78.5}],"weight_name":"routability","weight":388.20000000000005,"duration":363.5,"distance":291.9},{"confidence":0.8903306361380453,"geometry":"}_m_Iu{{pAEZwA{@cC}AqBsAaCyA","legs":[{"summary":"Adalbertstraße","weight":113.7,"duration":101.1,"steps":[{"intersections":[{"classes":["restricted"],"out":0,"entry":[true],"bearings":[292],"location":[13.418992,52.500625]}],"driving_side":"right","geometry":"}_m_Iu{{pA?BEV","mode":"driving","maneuver":{"bearing_after":292,"bearing_before":0,"location":[13.418992,52.500625],"modifier":"left","type":"depart","instruction":"Kör åt nordväst"},"weight":19.3,"duration":6.7,"name":"","distance":10.5},{"intersections":[{"out":0,"in":1,"entry":[true,false,true],"bearings":[30,120,210],"location":[13.418848,52.500661]}],"driving_side":"right","geometry":"c`m_Iyz{pAoAu@GE","mode":"driving","maneuver":{"bearing_after":22,"bearing_before":292,"location":[13.418848,52.500661],"modifier":"right","type":"turn","instruction":"Sväng höger in på Adalbertstraße"},"weight":94.4,"duration":94.4,"name":"Adalbertstraße","distance":52.5},{"intersections":[{"in":0,"entry":[true],"bearings":[202],"location":[13.419148,52.501096]}],"driving_side":"right","geometry":"{bm_Iu|{pA","mode":"driving","maneuver":{"bearing_after":0,"bearing_before":22,"location":[13.419148,52.501096],"modifier":"left","type":"arrive","instruction":"Du är framme vid din 1:a destination, till vänster"},"weight":0,"duration":0,"name":"Adalbertstraße","distance":0}],"distance":63},{"summary":"Adalbertstraße","weight":158,"duration":146,"steps":[{"intersections":[{"out":0,"entry":[true],"bearings":[22],"location":[13.419148,52.501096]},{"out":0,"in":2,"entry":[true,true,false,true],"bearings":[30,120,195,300],"location":[13.419277,52.501287]}],"driving_side":"right","geometry":"{bm_Iu|{pAe@Ym@a@o@a@","mode":"driving","maneuver":{"bearing_after":22,"bearing_before":0,"location":[13.419148,52.501096],"modifier":"left","type":"depart","instruction":"Kör åt nordost på Adalbertstraße"},"weight":158,"duration":146,"name":"Adalbertstraße","distance":80},{"intersections":[{"in":0,"entry":[true],"bearings":[204],"location":[13.41962,52.501755]}],"driving_side":"right","geometry":"_gm_Is_|pA","mode":"driving","maneuver":{"bearing_after":0,"bearing_before":24,"location":[13.41962,52.501755],"modifier":"right","type":"arrive","instruction":"Du är framme vid din 2:a destination, till höger"},"weight":0,"duration":0,"name":"Adalbertstraße","distance":0}],"distance":80},{"summary":"Adalbertstraße","weight":109.4,"duration":109.3,"steps":[{"intersections":[{"out":0,"entry":[true],"bearings":[24],"location":[13.41962,52.501755]},{"out":0,"in":2,"entry":[true,true,false,true],"bearings":[30,120,210,300],"location":[13.419982,52.502249]}],"driving_side":"right","geometry":"_gm_Is_|pAaBgAOK","mode":"driving","maneuver":{"bearing_after":24,"bearing_before":0,"location":[13.41962,52.501755],"modifier":"right","type":"depart","instruction":"Kör åt nordost på Adalbertstraße"},"weight":109.4,"duration":109.3,"name":"Adalbertstraße","distance":70.4},{"intersections":[{"in":0,"entry":[true],"bearings":[203],"location":[13.420041,52.502334]}],"driving_side":"right","geometry":"qjm_Igb|pA","mode":"driving","maneuver":{"bearing_after":0,"bearing_before":23,"location":[13.420041,52.502334],"modifier":"left","type":"arrive","instruction":"Du är framme vid din 3:e destination, till vänster"},"weight":0,"duration":0,"name":"Adalbertstraße","distance":0}],"distance":70.4},{"summary":"Adalbertstraße","weight":7.1,"duration":7.1,"steps":[{"intersections":[{"out":0,"entry":[true],"bearings":[23],"location":[13.420041,52.502334]}],"driving_side":"right","geometry":"qjm_Igb|pAaCyA","mode":"driving","maneuver":{"bearing_after":23,"bearing_before":0,"location":[13.420041,52.502334],"modifier":"left","type":"depart","instruction":"Kör åt nordost på Adalbertstraße"},"weight":7.1,"duration":7.1,"name":"Adalbertstraße","distance":78.5},{"intersections":[{"in":0,"entry":[true],"bearings":[203],"location":[13.420494,52.502984]}],"driving_side":"right","geometry":"snm_Iae|pA","mode":"driving","maneuver":{"bearing_after":0,"bearing_before":23,"location":[13.420494,52.502984],"modifier":"right","type":"arrive","instruction":"Du är framme vid din destination, till höger"},"weight":0,"duration":0,"name":"Adalbertstraße","distance":0}],"distance":78.5}],"weight_name":"routability","weight":388.20000000000005,"duration":363.5,"distance":291.9}],"tracepoints":[{"alternatives_count":0,"waypoint_index":0,"matchings_index":0,"name":"","location":[13.418992,52.500625]},{"alternatives_count":0,"waypoint_index":1,"matchings_index":0,"name":"Adalbertstraße","location":[13.419148,52.501096]},{"alternatives_count":0,"waypoint_index":2,"matchings_index":0,"name":"Adalbertstraße","location":[13.41962,52.501755]},{"alternatives_count":1,"waypoint_index":3,"matchings_index":0,"name":"Adalbertstraße","location":[13.420041,52.502334]},{"alternatives_count":1,"waypoint_index":4,"matchings_index":0,"name":"Adalbertstraße","location":[13.420494,52.502984]}],"code":"Ok"}