diff --git a/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java b/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java index e391bd3d..f9026d91 100644 --- a/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java @@ -765,14 +765,14 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider { final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, 0, null); - // Check that Location object has coordinates. - if (!location.isIdentified()) - throw new IllegalArgumentException(); - // Build query uri depending of location type. final String queryUriType; - if (location.type == LocationType.ADDRESS) + if (location.type == LocationType.ADDRESS || location.type == LocationType.ANY) { + if (!location.hasLocation()) + { + throw new IllegalArgumentException(); + } final double lon = location.lon / 1E6; final double lat = location.lat / 1E6; @@ -780,10 +780,18 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider } else if (location.type == LocationType.STATION) { + if (!location.isIdentified()) + { + throw new IllegalArgumentException(); + } queryUriType = "stop_point/" + location.id + "/"; } else if (location.type == LocationType.POI) { + if (!location.isIdentified()) + { + throw new IllegalArgumentException(); + } queryUriType = "poi/" + location.id + "/"; } else diff --git a/enabler/test/de/schildbach/pte/live/ParisProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/ParisProviderLiveTest.java index cc466320..475c4c20 100644 --- a/enabler/test/de/schildbach/pte/live/ParisProviderLiveTest.java +++ b/enabler/test/de/schildbach/pte/live/ParisProviderLiveTest.java @@ -89,6 +89,15 @@ public class ParisProviderLiveTest extends AbstractProviderLiveTest print(result); } + @Test + public void nearbyStationsAny() throws Exception + { + final NearbyLocationsResult result = queryNearbyLocations(EnumSet.of(LocationType.STATION), + new Location(LocationType.ANY, 48877523, 2378353), 700, 10); + assertEquals(NearbyLocationsResult.Status.OK, result.status); + print(result); + } + @Test public void nearbyStationsInvalidStation() throws Exception {