calculate representations of 'all products' in superclass

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@615 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach@gmail.com 2011-05-07 13:35:26 +00:00
parent 3097a52493
commit 7dfdd26481
17 changed files with 67 additions and 49 deletions

View file

@ -59,24 +59,28 @@ import de.schildbach.pte.util.XmlPullUtil;
public abstract class AbstractHafasProvider implements NetworkProvider public abstract class AbstractHafasProvider implements NetworkProvider
{ {
private static final String DEFAULT_ENCODING = "ISO-8859-1"; private static final String DEFAULT_ENCODING = "ISO-8859-1";
private static final String prod = "hafas";
private final String apiUri; private final String apiUri;
private static final String prod = "hafas"; private final int numProductBits;
private final String accessId; private final String accessId;
private final String jsonGetStopsEncoding; private final String jsonGetStopsEncoding;
private final String xmlMlcResEncoding; private final String xmlMlcResEncoding;
public AbstractHafasProvider(final String apiUri, final String accessId, final String jsonGetStopsEncoding, final String xmlMlcResEncoding) public AbstractHafasProvider(final String apiUri, final int numProductBits, final String accessId, final String jsonGetStopsEncoding,
final String xmlMlcResEncoding)
{ {
this.apiUri = apiUri; this.apiUri = apiUri;
this.numProductBits = numProductBits;
this.accessId = accessId; this.accessId = accessId;
this.jsonGetStopsEncoding = jsonGetStopsEncoding; this.jsonGetStopsEncoding = jsonGetStopsEncoding;
this.xmlMlcResEncoding = xmlMlcResEncoding; this.xmlMlcResEncoding = xmlMlcResEncoding;
} }
public AbstractHafasProvider(final String apiUri, final String accessId) public AbstractHafasProvider(final String apiUri, final int numProductBits, final String accessId)
{ {
this.apiUri = apiUri; this.apiUri = apiUri;
this.numProductBits = numProductBits;
this.accessId = accessId; this.accessId = accessId;
this.jsonGetStopsEncoding = DEFAULT_ENCODING; this.jsonGetStopsEncoding = DEFAULT_ENCODING;
this.xmlMlcResEncoding = DEFAULT_ENCODING; this.xmlMlcResEncoding = DEFAULT_ENCODING;
@ -87,6 +91,19 @@ public abstract class AbstractHafasProvider implements NetworkProvider
return TimeZone.getTimeZone("CET"); return TimeZone.getTimeZone("CET");
} }
protected final String allProductsString()
{
final StringBuilder allProducts = new StringBuilder(numProductBits);
for (int i = 0; i < numProductBits; i++)
allProducts.append('1');
return allProducts.toString();
}
protected final int allProductsInt()
{
return (1 << numProductBits) - 1;
}
protected String[] splitNameAndPlace(final String name) protected String[] splitNameAndPlace(final String name)
{ {
return new String[] { null, name }; return new String[] { null, name };

View file

@ -50,7 +50,7 @@ public final class BahnProvider extends AbstractHafasProvider
public BahnProvider() public BahnProvider()
{ {
super("http://reiseauskunft.bahn.de/bin/extxml.exe", null); super("http://reiseauskunft.bahn.de/bin/extxml.exe", 14, null);
} }
public NetworkId id() public NetworkId id()
@ -108,7 +108,8 @@ public final class BahnProvider extends AbstractHafasProvider
else else
{ {
final String uri = API_BASE + "query.exe/dox" + "?performLocating=2&tpl=stopsnear&look_maxdist=" + (maxDistance > 0 ? maxDistance : 5000) final String uri = API_BASE + "query.exe/dox" + "?performLocating=2&tpl=stopsnear&look_maxdist=" + (maxDistance > 0 ? maxDistance : 5000)
+ "&look_stopclass=1023" + "&look_x=" + lon + "&look_y=" + lat; + "&look_stopclass=" + allProductsInt() + "&look_x=" + lon + "&look_y=" + lat;
System.out.println(uri);
final CharSequence page = ParserUtils.scrape(uri); final CharSequence page = ParserUtils.scrape(uri);
final Matcher m = P_NEARBY_STATIONS_BY_COORDINATE.matcher(page); final Matcher m = P_NEARBY_STATIONS_BY_COORDINATE.matcher(page);
@ -496,7 +497,7 @@ public final class BahnProvider extends AbstractHafasProvider
{ {
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE).append("bhftafel.exe/dn"); uri.append(API_BASE).append("bhftafel.exe/dn");
uri.append("?productsFilter=11111111111111"); uri.append("?productsFilter=").append(allProductsString());
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&maxJourneys=50"); // ignore maxDepartures because result contains other stations uri.append("&maxJourneys=50"); // ignore maxDepartures because result contains other stations
uri.append("&start=yes"); uri.append("&start=yes");

View file

@ -64,7 +64,7 @@ public final class BvgProvider extends AbstractHafasProvider
public BvgProvider(final String additionalQueryParameter) public BvgProvider(final String additionalQueryParameter)
{ {
super(API_BASE + "query.bin/dn", null); super(API_BASE + "query.bin/dn", 8, null);
this.additionalQueryParameter = additionalQueryParameter; this.additionalQueryParameter = additionalQueryParameter;
} }

View file

@ -37,7 +37,7 @@ public class DsbProvider extends AbstractHafasProvider
public DsbProvider() public DsbProvider()
{ {
super(null, null); super(null, 11, null);
} }
public NetworkId id() public NetworkId id()
@ -82,7 +82,7 @@ public class DsbProvider extends AbstractHafasProvider
uri.append("?performLocating=2&tpl=stop2json"); uri.append("?performLocating=2&tpl=stop2json");
uri.append("&look_maxno=").append(maxStations != 0 ? maxStations : 200); uri.append("&look_maxno=").append(maxStations != 0 ? maxStations : 200);
uri.append("&look_maxdist=").append(maxDistance != 0 ? maxDistance : 5000); uri.append("&look_maxdist=").append(maxDistance != 0 ? maxDistance : 5000);
uri.append("&look_stopclass=2047"); uri.append("&look_stopclass=").append(allProductsInt());
uri.append("&look_x=").append(lon); uri.append("&look_x=").append(lon);
uri.append("&look_y=").append(lat); uri.append("&look_y=").append(lat);
@ -91,7 +91,7 @@ public class DsbProvider extends AbstractHafasProvider
else else
{ {
uri.append("stboard.exe/mn"); uri.append("stboard.exe/mn");
uri.append("?productsFilter=11111111111"); uri.append("?productsFilter=").append(allProductsString());
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&input=").append(ParserUtils.urlEncode(stationId)); uri.append("&input=").append(ParserUtils.urlEncode(stationId));
uri.append("&sTI=1&start=yes&hcount=0"); uri.append("&sTI=1&start=yes&hcount=0");
@ -173,7 +173,7 @@ public class DsbProvider extends AbstractHafasProvider
{ {
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE).append("stboard.exe/mn"); uri.append(API_BASE).append("stboard.exe/mn");
uri.append("?productsFilter=11111111111"); uri.append("?productsFilter=").append(allProductsString());
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&maxJourneys=50"); // ignore maxDepartures because result contains other stations uri.append("&maxJourneys=50"); // ignore maxDepartures because result contains other stations
uri.append("&start=yes"); uri.append("&start=yes");

View file

@ -50,7 +50,7 @@ public class InvgProvider extends AbstractHafasProvider
public InvgProvider() public InvgProvider()
{ {
super(API_URI, null); super(API_URI, 10, null);
} }
public NetworkId id() public NetworkId id()
@ -143,7 +143,7 @@ public class InvgProvider extends AbstractHafasProvider
uri.append(API_BASE).append("stboard.exe/dn"); uri.append(API_BASE).append("stboard.exe/dn");
uri.append("?input=").append(stationId); uri.append("?input=").append(stationId);
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&productsFilter=1111111111"); uri.append("&productsFilter=").append(allProductsString());
if (maxDepartures != 0) if (maxDepartures != 0)
uri.append("&maxJourneys=").append(maxDepartures); uri.append("&maxJourneys=").append(maxDepartures);
uri.append("&disableEquivs=yes"); // don't use nearby stations uri.append("&disableEquivs=yes"); // don't use nearby stations

View file

@ -37,7 +37,7 @@ public class LuProvider extends AbstractHafasProvider
public LuProvider() public LuProvider()
{ {
super(API_BASE + "query.exe/dn", null); super(API_BASE + "query.exe/dn", 10, null);
} }
public NetworkId id() public NetworkId id()
@ -71,7 +71,7 @@ public class LuProvider extends AbstractHafasProvider
{ {
final StringBuilder uri = new StringBuilder(API_BASE); final StringBuilder uri = new StringBuilder(API_BASE);
uri.append("stboard.exe/dn"); uri.append("stboard.exe/dn");
uri.append("?productsFilter=11111111111111"); uri.append("?productsFilter=").append(allProductsString());
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&input=").append(ParserUtils.urlEncode(stationId)); uri.append("&input=").append(ParserUtils.urlEncode(stationId));
uri.append("&sTI=1&start=yes&hcount=0&L=vs_java3"); uri.append("&sTI=1&start=yes&hcount=0&L=vs_java3");
@ -119,7 +119,7 @@ public class LuProvider extends AbstractHafasProvider
{ {
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE).append("stboard.exe/dn"); uri.append(API_BASE).append("stboard.exe/dn");
uri.append("?productsFilter=11111111111"); uri.append("?productsFilter=").append(allProductsString());
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&maxJourneys=50"); // ignore maxDepartures because result contains other stations uri.append("&maxJourneys=50"); // ignore maxDepartures because result contains other stations
uri.append("&start=yes"); uri.append("&start=yes");

View file

@ -47,7 +47,7 @@ public class NasaProvider extends AbstractHafasProvider
public NasaProvider() public NasaProvider()
{ {
super(API_BASE + "query.exe/dn", null); super(API_BASE + "query.exe/dn", 8, null);
} }
public NetworkId id() public NetworkId id()
@ -69,8 +69,8 @@ public class NasaProvider extends AbstractHafasProvider
return xmlMLcReq(constraint); return xmlMLcReq(constraint);
} }
private final String NEARBY_URI = API_BASE private final String NEARBY_URI = API_BASE + "stboard.exe/dn?input=%s&selectDate=today&boardType=dep&productsFilter=" + allProductsString()
+ "stboard.exe/dn?input=%s&selectDate=today&boardType=dep&productsFilter=11111111&distance=50&near=Anzeigen"; + "&distance=50&near=Anzeigen";
@Override @Override
protected String nearbyStationUri(final String stationId) protected String nearbyStationUri(final String stationId)
@ -85,7 +85,7 @@ public class NasaProvider extends AbstractHafasProvider
uri.append(API_BASE).append("stboard.exe/dn"); uri.append(API_BASE).append("stboard.exe/dn");
uri.append("?input=").append(stationId); uri.append("?input=").append(stationId);
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&productsFilter=11111111"); uri.append("&productsFilter=").append(allProductsString());
if (maxDepartures != 0) if (maxDepartures != 0)
uri.append("&maxJourneys=").append(maxDepartures); uri.append("&maxJourneys=").append(maxDepartures);
uri.append("&disableEquivs=yes"); // don't use nearby stations uri.append("&disableEquivs=yes"); // don't use nearby stations

View file

@ -46,7 +46,7 @@ public class NsProvider extends AbstractHafasProvider
public NsProvider() public NsProvider()
{ {
super(API_URI, null); super(API_URI, 6, null);
} }
public NetworkId id() public NetworkId id()
@ -83,7 +83,7 @@ public class NsProvider extends AbstractHafasProvider
uri.append("?input=").append(stationId); uri.append("?input=").append(stationId);
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : 50); // maximum taken from SNCB site uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : 50); // maximum taken from SNCB site
uri.append("&productsFilter=1:1111111111111111"); uri.append("&productsFilter=").append(allProductsString());
uri.append("&disableEquivs=yes"); // don't use nearby stations uri.append("&disableEquivs=yes"); // don't use nearby stations
uri.append("&start=yes"); uri.append("&start=yes");
return uri.toString(); return uri.toString();

View file

@ -57,7 +57,7 @@ public class OebbProvider extends AbstractHafasProvider
public OebbProvider() public OebbProvider()
{ {
super(null, null); super(null, 12, null);
} }
public NetworkId id() public NetworkId id()
@ -105,7 +105,7 @@ public class OebbProvider extends AbstractHafasProvider
uri.append("?performLocating=2&tpl=stop2json"); uri.append("?performLocating=2&tpl=stop2json");
uri.append("&look_maxno=").append(maxStations != 0 ? maxStations : 200); uri.append("&look_maxno=").append(maxStations != 0 ? maxStations : 200);
uri.append("&look_maxdist=").append(maxDistance != 0 ? maxDistance : 5000); uri.append("&look_maxdist=").append(maxDistance != 0 ? maxDistance : 5000);
uri.append("&look_stopclass=2047"); uri.append("&look_stopclass=").append(allProductsInt());
uri.append("&look_x=").append(lon); uri.append("&look_x=").append(lon);
uri.append("&look_y=").append(lat); uri.append("&look_y=").append(lat);
@ -490,7 +490,7 @@ public class OebbProvider extends AbstractHafasProvider
uri.append("stboard.exe/dn?L=vs_scotty.vs_stb"); uri.append("stboard.exe/dn?L=vs_scotty.vs_stb");
uri.append("&input=").append(stationId); uri.append("&input=").append(stationId);
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&productsFilter=111111111111"); uri.append("&productsFilter=").append(allProductsString());
uri.append("&additionalTime=0"); uri.append("&additionalTime=0");
uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : 20); uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : 20);
uri.append("&start=yes"); uri.append("&start=yes");

View file

@ -37,7 +37,7 @@ public class PlProvider extends AbstractHafasProvider
public PlProvider() public PlProvider()
{ {
super(API_BASE + "query.exe/pn", null, null, "UTF-8"); super(API_BASE + "query.exe/pn", 7, null, null, "UTF-8");
} }
public NetworkId id() public NetworkId id()
@ -87,7 +87,7 @@ public class PlProvider extends AbstractHafasProvider
{ {
final StringBuilder uri = new StringBuilder(API_BASE); final StringBuilder uri = new StringBuilder(API_BASE);
uri.append("stboard.exe/pn"); uri.append("stboard.exe/pn");
uri.append("?productsFilter=1111111"); uri.append("?productsFilter=").append(allProductsString());
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&input=").append(ParserUtils.urlEncode(stationId)); uri.append("&input=").append(ParserUtils.urlEncode(stationId));
uri.append("&sTI=1&start=yes&hcount=0"); uri.append("&sTI=1&start=yes&hcount=0");
@ -316,7 +316,7 @@ public class PlProvider extends AbstractHafasProvider
{ {
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE).append("stboard.exe/pn"); uri.append(API_BASE).append("stboard.exe/pn");
uri.append("?productsFilter=1111111"); uri.append("?productsFilter=").append(allProductsString());
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&maxJourneys=50"); // ignore maxDepartures because result contains other stations uri.append("&maxJourneys=50"); // ignore maxDepartures because result contains other stations
uri.append("&start=yes"); uri.append("&start=yes");

View file

@ -53,7 +53,7 @@ public class RmvProvider extends AbstractHafasProvider
public RmvProvider() public RmvProvider()
{ {
super(null, null); super(null, 17, null);
} }
public NetworkId id() public NetworkId id()

View file

@ -48,7 +48,7 @@ public class SbbProvider extends AbstractHafasProvider
public SbbProvider(final String accessId) public SbbProvider(final String accessId)
{ {
super(API_URI, accessId); super(API_URI, 10, accessId);
} }
public NetworkId id() public NetworkId id()
@ -86,7 +86,7 @@ public class SbbProvider extends AbstractHafasProvider
if (maxDepartures != 0) if (maxDepartures != 0)
uri.append("&maxJourneys=").append(maxDepartures); uri.append("&maxJourneys=").append(maxDepartures);
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&productsFilter=1111111111000000"); uri.append("&productsFilter=").append(allProductsString());
uri.append("&input=").append(stationId); uri.append("&input=").append(stationId);
uri.append("&disableEquivs=yes"); // don't use nearby stations uri.append("&disableEquivs=yes"); // don't use nearby stations
return uri.toString(); return uri.toString();

View file

@ -47,7 +47,7 @@ public class SeptaProvider extends AbstractHafasProvider
public SeptaProvider() public SeptaProvider()
{ {
super(API_BASE + "query.exe/en", null); super(API_BASE + "query.exe/en", 4, null);
} }
public NetworkId id() public NetworkId id()
@ -126,8 +126,8 @@ public class SeptaProvider extends AbstractHafasProvider
return 0; return 0;
} }
private final String NEARBY_URI = API_BASE private final String NEARBY_URI = API_BASE + "stboard.exe/en?input=%s&selectDate=today&boardType=dep&productsFilter=" + allProductsString()
+ "stboard.exe/en?input=%s&selectDate=today&boardType=dep&productsFilter=1111&distance=50&near=Anzeigen"; + "&distance=50&near=Anzeigen";
@Override @Override
protected String nearbyStationUri(final String stationId) protected String nearbyStationUri(final String stationId)
@ -148,7 +148,7 @@ public class SeptaProvider extends AbstractHafasProvider
now.get(Calendar.AM_PM) == Calendar.AM ? "am" : "pm"))); now.get(Calendar.AM_PM) == Calendar.AM ? "am" : "pm")));
uri.append("&date=").append( uri.append("&date=").append(
String.format("%02d%02d%04d", now.get(Calendar.MONTH) + 1, now.get(Calendar.DAY_OF_MONTH), now.get(Calendar.YEAR))); String.format("%02d%02d%04d", now.get(Calendar.MONTH) + 1, now.get(Calendar.DAY_OF_MONTH), now.get(Calendar.YEAR)));
uri.append("&productsFilter=1111"); uri.append("&productsFilter=").append(allProductsString());
if (maxDepartures != 0) if (maxDepartures != 0)
uri.append("&maxJourneys=").append(maxDepartures); uri.append("&maxJourneys=").append(maxDepartures);
uri.append("&disableEquivs=yes"); // don't use nearby stations uri.append("&disableEquivs=yes"); // don't use nearby stations

View file

@ -46,7 +46,7 @@ public class ShProvider extends AbstractHafasProvider
public ShProvider() public ShProvider()
{ {
super(API_BASE + "query.exe/dn", null); super(API_BASE + "query.exe/dn", 16, null);
} }
public NetworkId id() public NetworkId id()
@ -68,8 +68,8 @@ public class ShProvider extends AbstractHafasProvider
return xmlMLcReq(constraint); return xmlMLcReq(constraint);
} }
private final String NEARBY_URI = API_BASE private final String NEARBY_URI = API_BASE + "stboard.exe/dn?input=%s&selectDate=today&boardType=dep&productsFilter=" + allProductsString()
+ "stboard.exe/dn?input=%s&selectDate=today&boardType=dep&productsFilter=1111111111111111&distance=50&near=Anzeigen"; + "&distance=50&near=Anzeigen";
@Override @Override
protected String nearbyStationUri(final String stationId) protected String nearbyStationUri(final String stationId)
@ -118,7 +118,7 @@ public class ShProvider extends AbstractHafasProvider
uri.append(API_BASE).append("stboard.exe/dn"); uri.append(API_BASE).append("stboard.exe/dn");
uri.append("?input=").append(stationId); uri.append("?input=").append(stationId);
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&productsFilter=11111111"); uri.append("&productsFilter=").append(allProductsString());
if (maxDepartures != 0) if (maxDepartures != 0)
uri.append("&maxJourneys=").append(maxDepartures); uri.append("&maxJourneys=").append(maxDepartures);
uri.append("&disableEquivs=yes"); // don't use nearby stations uri.append("&disableEquivs=yes"); // don't use nearby stations

View file

@ -47,7 +47,7 @@ public class SncbProvider extends AbstractHafasProvider
public SncbProvider() public SncbProvider()
{ {
super(API_URI, null); super(API_URI, 16, null);
} }
public NetworkId id() public NetworkId id()
@ -90,7 +90,7 @@ public class SncbProvider extends AbstractHafasProvider
uri.append("?input=").append(stationId); uri.append("?input=").append(stationId);
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : 50); // maximum taken from SNCB site uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : 50); // maximum taken from SNCB site
uri.append("&productsFilter=1:1111111111111111"); uri.append("&productsFilter=").append(allProductsString());
uri.append("&disableEquivs=yes"); // don't use nearby stations uri.append("&disableEquivs=yes"); // don't use nearby stations
uri.append("&start=yes"); uri.append("&start=yes");
return uri.toString(); return uri.toString();

View file

@ -49,7 +49,7 @@ public class VgsProvider extends AbstractHafasProvider
public VgsProvider() public VgsProvider()
{ {
super(null, null); super(null, 11, null);
} }
public NetworkId id() public NetworkId id()
@ -77,8 +77,8 @@ public class VgsProvider extends AbstractHafasProvider
return jsonGetStops(uri); return jsonGetStops(uri);
} }
private final String NEARBY_URI = API_BASE private final String NEARBY_URI = API_BASE + "stboard.exe/dn?input=%s&selectDate=today&boardType=dep&productsFilter=" + allProductsString()
+ "stboard.exe/dn?input=%s&selectDate=today&boardType=dep&productsFilter=11111111&distance=50&near=Anzeigen"; + "&distance=50&near=Anzeigen";
@Override @Override
protected String nearbyStationUri(final String stationId) protected String nearbyStationUri(final String stationId)
@ -93,7 +93,7 @@ public class VgsProvider extends AbstractHafasProvider
uri.append(API_BASE).append("stboard.exe/dn"); uri.append(API_BASE).append("stboard.exe/dn");
uri.append("?input=").append(stationId); uri.append("?input=").append(stationId);
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&productsFilter=11111111111"); uri.append("&productsFilter=").append(allProductsString());
if (maxDepartures != 0) if (maxDepartures != 0)
uri.append("&maxJourneys=").append(maxDepartures); uri.append("&maxJourneys=").append(maxDepartures);
uri.append("&disableEquivs=yes"); // don't use nearby stations uri.append("&disableEquivs=yes"); // don't use nearby stations

View file

@ -37,7 +37,7 @@ public class ZvvProvider extends AbstractHafasProvider
public ZvvProvider() public ZvvProvider()
{ {
super(API_BASE + "query.exe/dn", null); super(API_BASE + "query.exe/dn", 10, null);
} }
public NetworkId id() public NetworkId id()
@ -91,7 +91,7 @@ public class ZvvProvider extends AbstractHafasProvider
uri.append("?performLocating=2&tpl=stop2json"); uri.append("?performLocating=2&tpl=stop2json");
uri.append("&look_maxno=").append(maxStations != 0 ? maxStations : 150); uri.append("&look_maxno=").append(maxStations != 0 ? maxStations : 150);
uri.append("&look_maxdist=").append(maxDistance != 0 ? maxDistance : 5000); uri.append("&look_maxdist=").append(maxDistance != 0 ? maxDistance : 5000);
uri.append("&look_stopclass=1023"); uri.append("&look_stopclass=").append(allProductsInt());
uri.append("&look_x=").append(lon); uri.append("&look_x=").append(lon);
uri.append("&look_y=").append(lat); uri.append("&look_y=").append(lat);
@ -100,7 +100,7 @@ public class ZvvProvider extends AbstractHafasProvider
else else
{ {
uri.append("stboard.exe/dn"); uri.append("stboard.exe/dn");
uri.append("?productsFilter=1111111111"); uri.append("?productsFilter=").append(allProductsString());
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&input=").append(ParserUtils.urlEncode(stationId)); uri.append("&input=").append(ParserUtils.urlEncode(stationId));
uri.append("&sTI=1&start=yes&hcount=0"); uri.append("&sTI=1&start=yes&hcount=0");
@ -197,7 +197,7 @@ public class ZvvProvider extends AbstractHafasProvider
{ {
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE).append("stboard.exe/dn"); uri.append(API_BASE).append("stboard.exe/dn");
uri.append("?productsFilter=1111111111"); uri.append("?productsFilter=").append(allProductsString());
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&maxJourneys=50"); // ignore maxDepartures because result contains other stations uri.append("&maxJourneys=50"); // ignore maxDepartures because result contains other stations
uri.append("&start=yes"); uri.append("&start=yes");