fixed url parameters

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@556 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach@gmail.com 2011-04-13 17:05:07 +00:00
parent c2b541e745
commit 3e66509efc

View file

@ -210,12 +210,13 @@ public final class BvgProvider extends AbstractHafasProvider
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE).append("query.bin/dn"); uri.append(API_BASE).append("query.bin/dn");
uri.append("?REQ0HafasInitialSelection=0");
appendLocationBvg(uri, from, "S0", "SID"); uri.append("?start=Suchen");
appendLocationBvg(uri, to, "Z0", "ZID");
appendLocationBvg(uri, from, "S0");
appendLocationBvg(uri, to, "Z0");
if (via != null) if (via != null)
appendLocationBvg(uri, via, "1", null); appendLocationBvg(uri, via, "1.0");
uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0"); uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0");
uri.append("&REQ0JourneyDate=").append( uri.append("&REQ0JourneyDate=").append(
@ -270,24 +271,24 @@ public final class BvgProvider extends AbstractHafasProvider
// TODO Ruftaxi wäre wohl &REQ0JourneyProduct_prod_section_0_7=1 // TODO Ruftaxi wäre wohl &REQ0JourneyProduct_prod_section_0_7=1
} }
uri.append("&start=Suchen");
return uri.toString(); return uri.toString();
} }
private static final void appendLocationBvg(final StringBuilder uri, final Location location, final String paramSuffix, final String paramWgs) private static final void appendLocationBvg(final StringBuilder uri, final Location location, final String paramSuffix)
{ {
if (location.type == LocationType.ADDRESS && location.hasLocation() && paramWgs != null) uri.append("&REQ0JourneyStops").append(paramSuffix).append("A=").append(locationTypeValue(location));
if (location.type == LocationType.STATION && location.hasId() && location.id >= 1000000)
uri.append("&REQ0JourneyStops").append(paramSuffix).append("L=").append(location.id);
if (location.hasLocation())
{ {
final String v = ParserUtils.urlEncode("A=16@X=" + location.lon + "@Y=" + location.lat uri.append("&REQ0JourneyStops").append(paramSuffix).append("X=").append(location.lon);
+ (location.name != null ? "@O=" + location.name : ""), "ISO-8859-1"); uri.append("&REQ0JourneyStops").append(paramSuffix).append("Y=").append(location.lat);
uri.append("&").append(paramWgs).append("=").append(v);
}
else
{
uri.append("&REQ0JourneyStops").append(paramSuffix).append("A=").append(locationTypeValue(location));
uri.append("&REQ0JourneyStops").append(paramSuffix).append("G=").append(ParserUtils.urlEncode(locationValue(location)));
} }
if (location.name != null)
uri.append("&REQ0JourneyStops").append(paramSuffix).append("G=").append(ParserUtils.urlEncode(location.name));
} }
private static final int locationTypeValue(final Location location) private static final int locationTypeValue(final Location location)
@ -302,14 +303,6 @@ public final class BvgProvider extends AbstractHafasProvider
throw new IllegalArgumentException(type.toString()); throw new IllegalArgumentException(type.toString());
} }
private static final String locationValue(final Location location)
{
if (location.type == LocationType.STATION && location.id >= 1000000)
return Integer.toString(location.id);
else
return location.name;
}
private static final Pattern P_CHECK_ADDRESS = Pattern.compile("<option[^>]*>\\s*(.*?)\\s*</option>", Pattern.DOTALL); private static final Pattern P_CHECK_ADDRESS = Pattern.compile("<option[^>]*>\\s*(.*?)\\s*</option>", Pattern.DOTALL);
private static final Pattern P_CHECK_FROM = Pattern.compile("Von:"); private static final Pattern P_CHECK_FROM = Pattern.compile("Von:");
private static final Pattern P_CHECK_TO = Pattern.compile("Nach:"); private static final Pattern P_CHECK_TO = Pattern.compile("Nach:");