From 54ea75fefc1c7261a01a0e93f46aafff0ebc38d1 Mon Sep 17 00:00:00 2001 From: Antonio El Khoury Date: Sun, 21 Dec 2014 23:08:38 +0100 Subject: [PATCH] Navitia: Add support for walking speed in queryTrips. --- .../pte/AbstractNavitiaProvider.java | 20 ++++++++++++++++- .../pte/live/ParisProviderLiveTest.java | 22 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java b/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java index ee380c6b..f6f6ad5b 100644 --- a/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java @@ -991,9 +991,27 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider final String dateString = printDate(date); final String dateTimeRep = dep ? "departure" : "arrival"; + // Set walking speed. + final double walkingSpeed; + switch (walkSpeed) + { + case SLOW: + walkingSpeed = 1.12 * 0.8; + break; + case NORMAL: + walkingSpeed = 1.12; + break; + case FAST: + walkingSpeed = 1.12 * 1.2; + break; + default: + walkingSpeed = 1.12; + break; + } + final StringBuilder queryUri = new StringBuilder(tripUri() + "journeys?" + "from=" + ParserUtils.urlEncode(fromString) + "&to=" + ParserUtils.urlEncode(toString) + "&datetime=" + dateString + "&datetime_represents=" + dateTimeRep + "&count=1" - + "&depth=0"); + + "&walking_speed=" + walkingSpeed + "&depth=0"); if (options != null && options.contains(Option.BIKE)) { diff --git a/enabler/test/de/schildbach/pte/live/ParisProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/ParisProviderLiveTest.java index ec1fd21f..4f56750d 100644 --- a/enabler/test/de/schildbach/pte/live/ParisProviderLiveTest.java +++ b/enabler/test/de/schildbach/pte/live/ParisProviderLiveTest.java @@ -258,6 +258,28 @@ public class ParisProviderLiveTest extends AbstractProviderLiveTest print(result); } + @Test + public void queryTripSlowWalk() throws Exception + { + final QueryTripsResult result = queryTrips(new Location(LocationType.ADDRESS, 48877095, 2378431), null, new Location(LocationType.ADDRESS, + 48847168, 2261272), new Date(), true, Product.ALL, WalkSpeed.SLOW, Accessibility.NEUTRAL); + + assertEquals(QueryTripsResult.Status.OK, result.status); + + print(result); + } + + @Test + public void queryTripFastWalk() throws Exception + { + final QueryTripsResult result = queryTrips(new Location(LocationType.ADDRESS, 48877095, 2378431), null, new Location(LocationType.ADDRESS, + 48847168, 2261272), new Date(), true, Product.ALL, WalkSpeed.FAST, Accessibility.NEUTRAL); + + assertEquals(QueryTripsResult.Status.OK, result.status); + + print(result); + } + @Test public void queryMoreTrips() throws Exception {