From f5f5be44e8ea7f83d835c7057cb326b5699a584d Mon Sep 17 00:00:00 2001 From: "andreas.schildbach@gmail.com" Date: Sun, 9 Jan 2011 13:36:28 +0000 Subject: [PATCH] special parsing for some places git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@440 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/BvgProvider.java | 28 ++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/de/schildbach/pte/BvgProvider.java b/src/de/schildbach/pte/BvgProvider.java index 8ab2e0c4..1b75a729 100644 --- a/src/de/schildbach/pte/BvgProvider.java +++ b/src/de/schildbach/pte/BvgProvider.java @@ -146,7 +146,7 @@ public final class BvgProvider extends AbstractHafasProvider final int parsedLon = (int) (Float.parseFloat(mOwn.group(2)) * 1E6); final int parsedLat = (int) (Float.parseFloat(mOwn.group(3)) * 1E6); final String parsedName = ParserUtils.urlDecode(mOwn.group(4), "ISO-8859-1"); - stations.add(new Station(parsedId, null, parsedName, null, parsedLat, parsedLon, 0, null, null)); + stations.add(newStation(parsedId, parsedName, parsedLat, parsedLon)); } final Matcher mPage = P_NEARBY_PAGE.matcher(page); @@ -162,7 +162,9 @@ public final class BvgProvider extends AbstractHafasProvider { final int parsedId = Integer.parseInt(mFineLocation.group(1)); final String parsedName = ParserUtils.resolveEntities(mFineLocation.group(2)); - stations.add(new Station(parsedId, null, parsedName, null, 0, 0, 0, null, null)); + final Station station = newStation(parsedId, parsedName, 0, 0); + if (!stations.contains(station)) + stations.add(station); } else { @@ -181,6 +183,28 @@ public final class BvgProvider extends AbstractHafasProvider } } + private Station newStation(final int id, final String parsedName, final int lat, final int lon) + { + String place = null, name = null, longName = null; + + if (parsedName.endsWith(" (Berlin)")) + { + place = "Berlin"; + name = parsedName.substring(0, parsedName.length() - 9); + } + else if (parsedName.startsWith("Potsdam, ")) + { + place = "Potsdam"; + name = parsedName.substring(9); + } + else + { + longName = parsedName; + } + + return new Station(id, place, name, longName, lat, lon, 0, null, null); + } + public static final String STATION_URL_CONNECTION = "http://mobil.bvg.de/Fahrinfo/bin/query.bin/dox"; private String connectionsQueryUri(final Location from, final Location via, final Location to, final Date date, final boolean dep,