link to google maps for footway arrivals if coordinate is known

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@134 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach 2010-09-05 15:32:09 +00:00
parent f266d841a4
commit f3fc78f8fa
2 changed files with 27 additions and 7 deletions

View file

@ -143,6 +143,19 @@ public final class Connection implements Serializable
final public String departure; final public String departure;
final public int arrivalId; final public int arrivalId;
final public String arrival; final public String arrival;
final public double arrivalLat, arrivalLon;
public Footway(final int min, final int departureId, final String departure, final int arrivalId, final String arrival,
final double arrivalLat, final double arrivalLon)
{
this.min = min;
this.departureId = departureId;
this.departure = departure;
this.arrivalId = arrivalId;
this.arrival = arrival;
this.arrivalLat = arrivalLat;
this.arrivalLon = arrivalLon;
}
public Footway(final int min, final int departureId, final String departure, final int arrivalId, final String arrival) public Footway(final int min, final int departureId, final String departure, final int arrivalId, final String arrival)
{ {
@ -151,6 +164,8 @@ public final class Connection implements Serializable
this.departure = departure; this.departure = departure;
this.arrivalId = arrivalId; this.arrivalId = arrivalId;
this.arrival = arrival; this.arrival = arrival;
this.arrivalLat = 0;
this.arrivalLon = 0;
} }
@Override @Override
@ -161,7 +176,7 @@ public final class Connection implements Serializable
builder.append(","); builder.append(",");
builder.append("departure=").append(departureId).append("/").append(departure); builder.append("departure=").append(departureId).append("/").append(departure);
builder.append(","); builder.append(",");
builder.append("arrival=").append(arrivalId).append("/").append(arrival); builder.append("arrival=").append(arrivalId).append("/").append(arrival).append("/").append(arrivalLat).append(",").append(arrivalLon);
builder.append("]"); builder.append("]");
return builder.toString(); return builder.toString();
} }

View file

@ -370,9 +370,9 @@ public final class VbbProvider implements NetworkProvider
+ "<strong>(.*?)</strong>" // arrival + "<strong>(.*?)</strong>" // arrival
+ "|" // + "|" //
+ "(\\d+) Min\\.[\n\\s]?" // footway + "(\\d+) Min\\.[\n\\s]?" // footway
+ "Fussweg\n?" // + "Fussweg.*?" //
+ ".*?(?:<a href=\"/Fahrinfo.*?input=(\\d+)\">\n?" // arrivalId + "(?:<a href=\"/Fahrinfo.*?input=(\\d+)\">\n" // arrivalId
+ "<strong>(.*?)</strong>|<a href=\"/Stadtplan.*?\">(\\w.*?)</a>|<strong>(.*?)</strong>).*?" // arrival + "<strong>(.*?)</strong>|<a href=\"/Stadtplan.*?WGS84,(\\d+),(\\d+)&.*?\">([^<]*)</a>|<strong>([^<]*)</strong>).*?" // arrival
+ ").*?", Pattern.DOTALL); + ").*?", Pattern.DOTALL);
public GetConnectionDetailsResult getConnectionDetails(final String uri) throws IOException public GetConnectionDetailsResult getConnectionDetails(final String uri) throws IOException
@ -453,17 +453,22 @@ public final class VbbProvider implements NetworkProvider
{ {
final int arrivalId = mDetFine.group(12) != null ? Integer.parseInt(mDetFine.group(12)) : 0; final int arrivalId = mDetFine.group(12) != null ? Integer.parseInt(mDetFine.group(12)) : 0;
final String arrival = ParserUtils.resolveEntities(selectNotNull(mDetFine.group(13), mDetFine.group(14), mDetFine.group(15))); final String arrival = ParserUtils.resolveEntities(selectNotNull(mDetFine.group(13), mDetFine.group(16), mDetFine.group(17)));
final double arrivalLon = mDetFine.group(14) != null ? latLonToDouble(Integer.parseInt(mDetFine.group(14))) : 0;
final double arrivalLat = mDetFine.group(15) != null ? latLonToDouble(Integer.parseInt(mDetFine.group(15))) : 0;
if (parts.size() > 0 && parts.get(parts.size() - 1) instanceof Connection.Footway) if (parts.size() > 0 && parts.get(parts.size() - 1) instanceof Connection.Footway)
{ {
final Connection.Footway lastFootway = (Connection.Footway) parts.remove(parts.size() - 1); final Connection.Footway lastFootway = (Connection.Footway) parts.remove(parts.size() - 1);
parts.add(new Connection.Footway(lastFootway.min + Integer.parseInt(min), lastFootway.departureId, lastFootway.departure, parts.add(new Connection.Footway(lastFootway.min + Integer.parseInt(min), lastFootway.departureId, lastFootway.departure,
arrivalId, arrival)); arrivalId, arrival, arrivalLat, arrivalLon));
} }
else else
{ {
parts.add(new Connection.Footway(Integer.parseInt(min), departureId, departure, arrivalId, arrival)); parts.add(new Connection.Footway(Integer.parseInt(min), departureId, departure, arrivalId, arrival, arrivalLat,
arrivalLon));
} }
lastArrival = arrival; lastArrival = arrival;