From 834ef0c03f95e9e1637e4db38c3b21d02e788c27 Mon Sep 17 00:00:00 2001 From: "andreas.schildbach@gmail.com" Date: Sat, 7 May 2011 20:57:15 +0000 Subject: [PATCH] nearby stations by coordinate for Switzerland git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@622 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/SbbProvider.java | 14 ++++++- .../pte/live/SbbProviderLiveTest.java | 40 +++++++++++-------- 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/src/de/schildbach/pte/SbbProvider.java b/src/de/schildbach/pte/SbbProvider.java index dc2c98c7..2fe1df25 100644 --- a/src/de/schildbach/pte/SbbProvider.java +++ b/src/de/schildbach/pte/SbbProvider.java @@ -75,7 +75,19 @@ public class SbbProvider extends AbstractHafasProvider { final StringBuilder uri = new StringBuilder(API_BASE); - if (location.type == LocationType.STATION && location.hasId()) + if (location.hasLocation()) + { + uri.append("query.exe/dny"); + uri.append("?performLocating=2&tpl=stop2json"); + uri.append("&look_maxno=").append(maxStations != 0 ? maxStations : 200); + uri.append("&look_maxdist=").append(maxDistance != 0 ? maxDistance : 5000); + uri.append("&look_stopclass=").append(allProductsInt()); + uri.append("&look_x=").append(location.lon); + uri.append("&look_y=").append(location.lat); + + return jsonNearbyStations(uri.toString()); + } + else if (location.type == LocationType.STATION && location.hasId()) { uri.append("bhftafel.exe/dn?near=Anzeigen"); uri.append("&distance=").append(maxDistance != 0 ? maxDistance / 1000 : 50); diff --git a/test/de/schildbach/pte/live/SbbProviderLiveTest.java b/test/de/schildbach/pte/live/SbbProviderLiveTest.java index 03a30428..75f3cada 100644 --- a/test/de/schildbach/pte/live/SbbProviderLiveTest.java +++ b/test/de/schildbach/pte/live/SbbProviderLiveTest.java @@ -38,6 +38,30 @@ public class SbbProviderLiveTest private SbbProvider provider = new SbbProvider(Secrets.SBB_ACCESS_ID); private static final String ALL_PRODUCTS = "IRSUTBFC"; + @Test + public void nearbyStations() throws Exception + { + final NearbyStationsResult result = provider.queryNearbyStations(new Location(LocationType.STATION, 8500010), 0, 0); + + System.out.println(result.status + " " + result.stations.size() + " " + result.stations); + } + + @Test + public void nearbyStationsByCoordinate() throws Exception + { + final NearbyStationsResult result = provider.queryNearbyStations(new Location(LocationType.ADDRESS, 52525589, 13369548), 0, 0); + + System.out.println(result.stations.size() + " " + result.stations); + } + + @Test + public void queryDepartures() throws Exception + { + final QueryDeparturesResult result = provider.queryDepartures("8500010", 0, false); + + System.out.println(result.stationDepartures); + } + @Test public void autoComplete() throws Exception { @@ -62,22 +86,6 @@ public class SbbProviderLiveTest System.out.println(); } - @Test - public void nearbyStations() throws Exception - { - final NearbyStationsResult result = provider.queryNearbyStations(new Location(LocationType.STATION, 8500010), 0, 0); - - System.out.println(result.status + " " + result.stations.size() + " " + result.stations); - } - - @Test - public void queryDepartures() throws Exception - { - final QueryDeparturesResult result = provider.queryDepartures("8500010", 0, false); - - System.out.println(result.stationDepartures); - } - @Test public void shortConnection() throws Exception {