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 int arrivalId;
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)
{
@ -151,6 +164,8 @@ public final class Connection implements Serializable
this.departure = departure;
this.arrivalId = arrivalId;
this.arrival = arrival;
this.arrivalLat = 0;
this.arrivalLon = 0;
}
@Override
@ -161,7 +176,7 @@ public final class Connection implements Serializable
builder.append(",");
builder.append("departure=").append(departureId).append("/").append(departure);
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("]");
return builder.toString();
}

View file

@ -370,9 +370,9 @@ public final class VbbProvider implements NetworkProvider
+ "<strong>(.*?)</strong>" // arrival
+ "|" //
+ "(\\d+) Min\\.[\n\\s]?" // footway
+ "Fussweg\n?" //
+ ".*?(?:<a href=\"/Fahrinfo.*?input=(\\d+)\">\n?" // arrivalId
+ "<strong>(.*?)</strong>|<a href=\"/Stadtplan.*?\">(\\w.*?)</a>|<strong>(.*?)</strong>).*?" // arrival
+ "Fussweg.*?" //
+ "(?:<a href=\"/Fahrinfo.*?input=(\\d+)\">\n" // arrivalId
+ "<strong>(.*?)</strong>|<a href=\"/Stadtplan.*?WGS84,(\\d+),(\\d+)&.*?\">([^<]*)</a>|<strong>([^<]*)</strong>).*?" // arrival
+ ").*?", Pattern.DOTALL);
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 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)
{
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,
arrivalId, arrival));
arrivalId, arrival, arrivalLat, arrivalLon));
}
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;