mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-14 16:40:30 +00:00
arrival positions and predicted positions
This commit is contained in:
parent
b37c63c333
commit
3b01c1a941
6 changed files with 129 additions and 33 deletions
|
@ -2046,7 +2046,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
|||
XmlPullUtil.exit(pp, "itdPoint");
|
||||
|
||||
if (success1 || success2)
|
||||
intermediateStops.add(new Stop(stopLocation, stopPosition, null, null, stopTime, null));
|
||||
intermediateStops.add(new Stop(stopLocation, null, null, stopTime, stopPosition));
|
||||
}
|
||||
XmlPullUtil.exit(pp, "itdStopSeq");
|
||||
|
||||
|
@ -2094,8 +2094,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
|||
final Line line = new Line(lineId, lineLabel, lineStyle(lineLabel), lineAttrs);
|
||||
|
||||
parts.add(new Connection.Trip(line, destination, departureTargetTime != null ? departureTargetTime : departureTime,
|
||||
departureTargetTime, departurePosition, departure, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime,
|
||||
arrivalTargetTime, arrivalPosition, arrival, intermediateStops, path));
|
||||
departureTargetTime, departurePosition, null, departure, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime,
|
||||
arrivalTargetTime, arrivalPosition, null, arrival, intermediateStops, path));
|
||||
}
|
||||
|
||||
XmlPullUtil.exit(pp, "itdPartialRoute");
|
||||
|
|
|
@ -1161,7 +1161,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
{
|
||||
Date stopArrivalTime = null;
|
||||
Date stopDepartureTime = null;
|
||||
String stopPosition = null;
|
||||
String stopArrivalPosition = null;
|
||||
String stopDeparturePosition = null;
|
||||
|
||||
if (XmlPullUtil.test(pp, "Arr"))
|
||||
{
|
||||
|
@ -1170,7 +1171,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
time.setTimeInMillis(currentDate.getTimeInMillis());
|
||||
parseTime(time, XmlPullUtil.text(pp));
|
||||
stopArrivalTime = time.getTime();
|
||||
stopPosition = parsePlatform(pp);
|
||||
stopArrivalPosition = parsePlatform(pp);
|
||||
XmlPullUtil.exit(pp, "Arr");
|
||||
}
|
||||
|
||||
|
@ -1181,11 +1182,12 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
time.setTimeInMillis(currentDate.getTimeInMillis());
|
||||
parseTime(time, XmlPullUtil.text(pp));
|
||||
stopDepartureTime = time.getTime();
|
||||
stopPosition = parsePlatform(pp);
|
||||
stopDeparturePosition = parsePlatform(pp);
|
||||
XmlPullUtil.exit(pp, "Dep");
|
||||
}
|
||||
|
||||
intermediateStops.add(new Stop(location, stopPosition, stopArrivalTime, null, stopDepartureTime, null));
|
||||
intermediateStops.add(new Stop(location, stopArrivalTime, stopArrivalPosition, stopDepartureTime,
|
||||
stopDeparturePosition));
|
||||
}
|
||||
XmlPullUtil.exit(pp, "BasicStop");
|
||||
}
|
||||
|
@ -1263,8 +1265,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
|
||||
if (min == 0 || line != null)
|
||||
{
|
||||
parts.add(new Connection.Trip(line, destination, departureTime, null, departurePos, sectionDeparture, arrivalTime, null,
|
||||
arrivalPos, sectionArrival, intermediateStops, path));
|
||||
parts.add(new Connection.Trip(line, destination, departureTime, null, departurePos, null, sectionDeparture, arrivalTime,
|
||||
null, arrivalPos, null, sectionArrival, intermediateStops, path));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1753,8 +1755,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
|
||||
/* final long predictedDepartureTime = */time(is, resDate, connectionDayOffset);
|
||||
/* final long predictedArrivalTime = */time(is, resDate, connectionDayOffset);
|
||||
/* final String predictedDeparturePosition = */normalizePosition(strings.read(is));
|
||||
/* final String predictedArrivalPosition = */normalizePosition(strings.read(is));
|
||||
final String predictedDeparturePosition = normalizePosition(strings.read(is));
|
||||
final String predictedArrivalPosition = normalizePosition(strings.read(is));
|
||||
|
||||
is.readInt();
|
||||
|
||||
|
@ -1781,7 +1783,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
final long plannedStopArrivalTime = time(is, resDate, connectionDayOffset);
|
||||
final Date plannedStopArrivalDate = plannedStopArrivalTime != 0 ? new Date(plannedStopArrivalTime) : null;
|
||||
final String plannedStopDeparturePosition = normalizePosition(strings.read(is));
|
||||
/* final String plannedStopArrivalPosition = */normalizePosition(strings.read(is));
|
||||
final String plannedStopArrivalPosition = normalizePosition(strings.read(is));
|
||||
|
||||
is.readInt();
|
||||
|
||||
|
@ -1789,15 +1791,16 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
final Date predictedStopDepartureDate = predictedStopDepartureTime != 0 ? new Date(predictedStopDepartureTime) : null;
|
||||
final long predictedStopArrivalTime = time(is, resDate, connectionDayOffset);
|
||||
final Date predictedStopArrivalDate = predictedStopArrivalTime != 0 ? new Date(predictedStopArrivalTime) : null;
|
||||
/* final String predictedStopDeparturePosition = */normalizePosition(strings.read(is));
|
||||
/* final String predictedStopArrivalPosition = */normalizePosition(strings.read(is));
|
||||
final String predictedStopDeparturePosition = normalizePosition(strings.read(is));
|
||||
final String predictedStopArrivalPosition = normalizePosition(strings.read(is));
|
||||
|
||||
is.readInt();
|
||||
|
||||
final Location stopLocation = stations.read(is);
|
||||
|
||||
final Stop stop = new Stop(stopLocation, plannedStopDeparturePosition, plannedStopArrivalDate, predictedStopArrivalDate,
|
||||
plannedStopDepartureDate, predictedStopDepartureDate);
|
||||
final Stop stop = new Stop(stopLocation, plannedStopArrivalDate, predictedStopArrivalDate, plannedStopArrivalPosition,
|
||||
predictedStopArrivalPosition, plannedStopDepartureDate, predictedStopDepartureDate, plannedStopDeparturePosition,
|
||||
predictedStopDeparturePosition);
|
||||
|
||||
intermediateStops.add(stop);
|
||||
}
|
||||
|
@ -1825,8 +1828,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
final Location direction = directionStr != null ? new Location(LocationType.ANY, 0, null, directionStr) : null;
|
||||
|
||||
part = new Connection.Trip(line, direction, plannedDepartureTime != 0 ? new Date(plannedDepartureTime) : null, null,
|
||||
plannedDeparturePosition, departure, plannedArrivalTime != 0 ? new Date(plannedArrivalTime) : null, null,
|
||||
plannedArrivalPosition, arrival, intermediateStops, null);
|
||||
plannedDeparturePosition, predictedDeparturePosition, departure, plannedArrivalTime != 0 ? new Date(
|
||||
plannedArrivalTime) : null, null, plannedArrivalPosition, predictedArrivalPosition, arrival,
|
||||
intermediateStops, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -793,7 +793,7 @@ public final class BvgProvider extends AbstractHafasProvider
|
|||
if (lastTime != null && time.getTime().before(lastTime))
|
||||
time.add(Calendar.DAY_OF_YEAR, 1);
|
||||
lastTime = time.getTime();
|
||||
intermediateStops.add(new Stop(location(tStop), null, null, null, time.getTime(), null));
|
||||
intermediateStops.add(new Stop(location(tStop), null, null, time.getTime(), null));
|
||||
}
|
||||
|
||||
final Location arrival = location(tArr);
|
||||
|
@ -821,8 +821,8 @@ public final class BvgProvider extends AbstractHafasProvider
|
|||
destination = null;
|
||||
}
|
||||
|
||||
parts.add(new Connection.Trip(line, destination, departureTime, null, departurePosition, departure, arrivalTime, null,
|
||||
arrivalPosition, arrival, intermediateStops, null));
|
||||
parts.add(new Connection.Trip(line, destination, departureTime, null, departurePosition, null, departure, arrivalTime,
|
||||
null, arrivalPosition, null, arrival, intermediateStops, null));
|
||||
numTrips++;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -433,8 +433,8 @@ public class SadProvider extends AbstractNetworkProvider {
|
|||
// predictedDepartureTime, departurePosition,
|
||||
// predictedArrivalTime, arrivalPosition,
|
||||
// intermediateStops, path
|
||||
parts.add(new Trip(new Line(lineId, lineId, DEFAULT_STYLE), null, responseDate.get(0), null, null,
|
||||
soapToLocation((SoapObject) tratto.getProperty("nodo_partenza")), responseDate.get(1), null, null,
|
||||
parts.add(new Trip(new Line(lineId, lineId, DEFAULT_STYLE), null, responseDate.get(0), null, null, null,
|
||||
soapToLocation((SoapObject) tratto.getProperty("nodo_partenza")), responseDate.get(1), null, null, null,
|
||||
soapToLocation((SoapObject) tratto.getProperty("nodo_arrivo")), null, null));
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
|
|
|
@ -185,15 +185,18 @@ public final class Connection implements Serializable
|
|||
public final Location destination;
|
||||
public final Date departureTime; // TODO rename to plannedDepartureTime
|
||||
public final Date predictedDepartureTime;
|
||||
public final String departurePosition;
|
||||
public final String departurePosition; // TODO rename to plannedDeparturePosition
|
||||
public final String predictedDeparturePosition;
|
||||
public final Date arrivalTime; // TODO rename to plannedArrivalTime
|
||||
public final Date predictedArrivalTime;
|
||||
public final String arrivalPosition;
|
||||
public final String arrivalPosition; // TODO rename to plannedArrivalPosition
|
||||
public final String predictedArrivalPosition;
|
||||
public final List<Stop> intermediateStops;
|
||||
|
||||
public Trip(final Line line, final Location destination, final Date plannedDepartureTime, final Date predictedDepartureTime,
|
||||
final String departurePosition, final Location departure, final Date plannedArrivalTime, final Date predictedArrivalTime,
|
||||
final String arrivalPosition, final Location arrival, final List<Stop> intermediateStops, final List<Point> path)
|
||||
final String departurePosition, final String predictedDeparturePosition, final Location departure, final Date plannedArrivalTime,
|
||||
final Date predictedArrivalTime, final String arrivalPosition, final String predictedArrivalPosition, final Location arrival,
|
||||
final List<Stop> intermediateStops, final List<Point> path)
|
||||
{
|
||||
super(departure, arrival, path);
|
||||
|
||||
|
@ -202,9 +205,11 @@ public final class Connection implements Serializable
|
|||
this.departureTime = plannedDepartureTime;
|
||||
this.predictedDepartureTime = predictedDepartureTime;
|
||||
this.departurePosition = departurePosition;
|
||||
this.predictedDeparturePosition = predictedDeparturePosition;
|
||||
this.arrivalTime = plannedArrivalTime;
|
||||
this.predictedArrivalTime = predictedArrivalTime;
|
||||
this.arrivalPosition = arrivalPosition;
|
||||
this.predictedArrivalPosition = predictedArrivalPosition;
|
||||
this.intermediateStops = intermediateStops;
|
||||
}
|
||||
|
||||
|
@ -223,6 +228,21 @@ public final class Connection implements Serializable
|
|||
return predictedDepartureTime != null;
|
||||
}
|
||||
|
||||
public String getDeparturePosition()
|
||||
{
|
||||
if (predictedDeparturePosition != null)
|
||||
return predictedDeparturePosition;
|
||||
else if (departurePosition != null)
|
||||
return departurePosition;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isDeparturePositionPredicted()
|
||||
{
|
||||
return predictedDeparturePosition != null;
|
||||
}
|
||||
|
||||
public Date getArrivalTime()
|
||||
{
|
||||
if (predictedArrivalTime != null)
|
||||
|
@ -238,6 +258,21 @@ public final class Connection implements Serializable
|
|||
return predictedArrivalTime != null;
|
||||
}
|
||||
|
||||
public String getArrivalPosition()
|
||||
{
|
||||
if (predictedArrivalPosition != null)
|
||||
return predictedArrivalPosition;
|
||||
else if (arrivalPosition != null)
|
||||
return arrivalPosition;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isArrivalPositionPredicted()
|
||||
{
|
||||
return predictedArrivalPosition != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
|
|
|
@ -26,21 +26,42 @@ import java.util.Date;
|
|||
public final class Stop implements Serializable
|
||||
{
|
||||
public final Location location;
|
||||
public final String position;
|
||||
public final Date plannedArrivalTime;
|
||||
public final Date predictedArrivalTime;
|
||||
public final String plannedArrivalPosition;
|
||||
public final String predictedArrivalPosition;
|
||||
public final Date time; // TODO rename to plannedDepartureTime
|
||||
public final Date predictedDepartureTime;
|
||||
public final String position; // TODO rename to plannedPosition
|
||||
public final String predictedDeparturePosition;
|
||||
|
||||
public Stop(final Location location, final String position, final Date plannedArrivalTime, final Date predictedArrivalTime,
|
||||
final Date plannedDepartureTime, final Date predictedDepartureTime)
|
||||
public Stop(final Location location, final Date plannedArrivalTime, final Date predictedArrivalTime, final String plannedArrivalPosition,
|
||||
final String predictedArrivalPosition, final Date plannedDepartureTime, final Date predictedDepartureTime,
|
||||
final String plannedDeparturePosition, final String predictedDeparturePosition)
|
||||
{
|
||||
this.location = location;
|
||||
this.position = position;
|
||||
this.plannedArrivalTime = plannedArrivalTime;
|
||||
this.predictedArrivalTime = predictedArrivalTime;
|
||||
this.plannedArrivalPosition = plannedArrivalPosition;
|
||||
this.predictedArrivalPosition = predictedArrivalPosition;
|
||||
this.time = plannedDepartureTime;
|
||||
this.predictedDepartureTime = predictedDepartureTime;
|
||||
this.position = plannedDeparturePosition;
|
||||
this.predictedDeparturePosition = predictedDeparturePosition;
|
||||
}
|
||||
|
||||
public Stop(final Location location, final Date plannedArrivalTime, final String plannedArrivalPosition, final Date plannedDepartureTime,
|
||||
final String plannedDeparturePosition)
|
||||
{
|
||||
this.location = location;
|
||||
this.plannedArrivalTime = plannedArrivalTime;
|
||||
this.predictedArrivalTime = null;
|
||||
this.plannedArrivalPosition = plannedArrivalPosition;
|
||||
this.predictedArrivalPosition = null;
|
||||
this.time = plannedDepartureTime;
|
||||
this.predictedDepartureTime = null;
|
||||
this.position = plannedDeparturePosition;
|
||||
this.predictedDeparturePosition = null;
|
||||
}
|
||||
|
||||
public Date getArrivalTime()
|
||||
|
@ -58,6 +79,21 @@ public final class Stop implements Serializable
|
|||
return predictedArrivalTime != null;
|
||||
}
|
||||
|
||||
public String getArrivalPosition()
|
||||
{
|
||||
if (predictedArrivalPosition != null)
|
||||
return predictedArrivalPosition;
|
||||
else if (plannedArrivalPosition != null)
|
||||
return plannedArrivalPosition;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isArrivalPositionPredicted()
|
||||
{
|
||||
return predictedArrivalPosition != null;
|
||||
}
|
||||
|
||||
public Date getDepartureTime()
|
||||
{
|
||||
if (predictedDepartureTime != null)
|
||||
|
@ -73,21 +109,42 @@ public final class Stop implements Serializable
|
|||
return predictedDepartureTime != null;
|
||||
}
|
||||
|
||||
public String getDeparturePosition()
|
||||
{
|
||||
if (predictedDeparturePosition != null)
|
||||
return predictedDeparturePosition;
|
||||
else if (position != null)
|
||||
return position;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isDeparturePositionPredicted()
|
||||
{
|
||||
return predictedDeparturePosition != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
StringBuilder builder = new StringBuilder("Stop(");
|
||||
builder.append(location);
|
||||
builder.append(",");
|
||||
builder.append(position != null ? position : "null");
|
||||
builder.append(",");
|
||||
builder.append(plannedArrivalTime != null ? plannedArrivalTime : "null");
|
||||
builder.append(",");
|
||||
builder.append(predictedArrivalTime != null ? predictedArrivalTime : "null");
|
||||
builder.append(",");
|
||||
builder.append(plannedArrivalPosition != null ? plannedArrivalPosition : "null");
|
||||
builder.append(",");
|
||||
builder.append(predictedArrivalPosition != null ? predictedArrivalPosition : "null");
|
||||
builder.append(",");
|
||||
builder.append(time != null ? time : "null");
|
||||
builder.append(",");
|
||||
builder.append(predictedDepartureTime != null ? predictedDepartureTime : "null");
|
||||
builder.append(",");
|
||||
builder.append(position != null ? position : "null");
|
||||
builder.append(",");
|
||||
builder.append(predictedDeparturePosition != null ? predictedDeparturePosition : "null");
|
||||
builder.append(")");
|
||||
return builder.toString();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue