@golemio/pid 2.2.11-dev.603872808 → 2.2.11-dev.613720384
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.d.ts +0 -81
- package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.js +2 -454
- package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/helpers/PositionCalculator.d.ts +9 -0
- package/dist/integration-engine/vehicle-positions/helpers/PositionCalculator.js +46 -0
- package/dist/integration-engine/vehicle-positions/helpers/PositionCalculator.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/helpers/PositionHandlerEnum.d.ts +6 -0
- package/dist/integration-engine/vehicle-positions/helpers/PositionHandlerEnum.js +11 -0
- package/dist/integration-engine/vehicle-positions/helpers/PositionHandlerEnum.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/helpers/PositionsManager.d.ts +77 -0
- package/dist/integration-engine/vehicle-positions/helpers/PositionsManager.js +445 -0
- package/dist/integration-engine/vehicle-positions/helpers/PositionsManager.js.map +1 -0
- package/dist/output-gateway/ropid-gtfs/models/GTFSStopModel.js +2 -2
- package/dist/output-gateway/ropid-gtfs/models/GTFSStopModel.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.js +2 -1
- package/dist/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
var _a;
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const turf = __importStar(require("@turf/turf"));
|
|
40
|
+
const moment_1 = __importDefault(require("moment"));
|
|
41
|
+
const const_1 = require("../../../const");
|
|
42
|
+
const models_1 = require("../models");
|
|
43
|
+
const DPPUtils_1 = __importDefault(require("./DPPUtils"));
|
|
44
|
+
const PositionCalculator_1 = __importDefault(require("./PositionCalculator"));
|
|
45
|
+
const PositionHandlerEnum_1 = require("./PositionHandlerEnum");
|
|
46
|
+
const ValidToCalculator_1 = __importDefault(require("./ValidToCalculator"));
|
|
47
|
+
class PositionsManager {
|
|
48
|
+
}
|
|
49
|
+
exports.default = PositionsManager;
|
|
50
|
+
_a = PositionsManager;
|
|
51
|
+
/**
|
|
52
|
+
* Compute positions and return computed positions
|
|
53
|
+
*
|
|
54
|
+
* @param {ITripPositionsWithGTFS} tripPositions - Trip positions with shape anchors data
|
|
55
|
+
* @returns {Promise<IProcessedPositions>} - Returns computed/updated positions
|
|
56
|
+
*/
|
|
57
|
+
PositionsManager.computePositions = (tripPositions, schedule) => __awaiter(void 0, void 0, void 0, function* () {
|
|
58
|
+
const startTimestamp = parseInt(tripPositions.start_timestamp, 10);
|
|
59
|
+
const startDayTimestamp = _a.getStartDayTimestamp(startTimestamp, tripPositions.gtfsData.shapes_anchor_points[0].time_scheduled_seconds);
|
|
60
|
+
const gtfsRouteType = tripPositions.gtfs_route_type;
|
|
61
|
+
return new Promise((resolve) => {
|
|
62
|
+
const context = {
|
|
63
|
+
atStopStreak: {
|
|
64
|
+
stop_sequence: null,
|
|
65
|
+
firstPositionTimestamp: null,
|
|
66
|
+
firstPositionDelay: null,
|
|
67
|
+
},
|
|
68
|
+
lastPositionLastStop: {
|
|
69
|
+
id: null,
|
|
70
|
+
sequence: null,
|
|
71
|
+
arrival_time: null,
|
|
72
|
+
departure_time: null,
|
|
73
|
+
},
|
|
74
|
+
lastPositionDelay: null,
|
|
75
|
+
lastPositionId: null,
|
|
76
|
+
lastPositionOriginTimestamp: null,
|
|
77
|
+
lastPositionTracking: null,
|
|
78
|
+
lastPositionCanceled: null,
|
|
79
|
+
lastPositionBeforeTrackDelayed: null,
|
|
80
|
+
isLastPositionAfterTrack: false,
|
|
81
|
+
tripId: tripPositions.id,
|
|
82
|
+
};
|
|
83
|
+
const computedPositions = [];
|
|
84
|
+
PositionsManager.updatePositionsIterator(0, { tripPositions, startTimestamp, startDayTimestamp, context, computedPositions, gtfsRouteType }, schedule, () => {
|
|
85
|
+
resolve({
|
|
86
|
+
context,
|
|
87
|
+
positions: computedPositions,
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
/**
|
|
93
|
+
* Takes position one by one, set proper handler for type of position, and do the process of position
|
|
94
|
+
*
|
|
95
|
+
* @param {number} i - Iteration
|
|
96
|
+
* @param {IUpdatePositionsIteratorOptions} options - Initial options
|
|
97
|
+
* @param {number} cb - Callback function of iterator
|
|
98
|
+
* @returns {void} - void
|
|
99
|
+
*/
|
|
100
|
+
PositionsManager.updatePositionsIterator = (i, options, schedule, cb) => __awaiter(void 0, void 0, void 0, function* () {
|
|
101
|
+
const { tripPositions, startDayTimestamp, startTimestamp, context, computedPositions, gtfsRouteType } = options;
|
|
102
|
+
if (i === tripPositions.positions.length) {
|
|
103
|
+
return cb();
|
|
104
|
+
}
|
|
105
|
+
const position = tripPositions.positions[i];
|
|
106
|
+
let positionToUpdate = null;
|
|
107
|
+
// situations
|
|
108
|
+
switch (_a.setPositionUpdateHandler(position)) {
|
|
109
|
+
case PositionHandlerEnum_1.PositionHandlerEnum.TRACKING:
|
|
110
|
+
const currentPosition = turf.point([position.lng, position.lat], {
|
|
111
|
+
id: position.id,
|
|
112
|
+
origin_time: position.origin_time,
|
|
113
|
+
origin_timestamp: position.origin_timestamp,
|
|
114
|
+
tcp_event: position.tcp_event,
|
|
115
|
+
});
|
|
116
|
+
positionToUpdate = yield _a.getEstimatedPoint(tripPositions.gtfsData, currentPosition, context, startDayTimestamp, tripPositions.gtfs_route_type);
|
|
117
|
+
break;
|
|
118
|
+
case PositionHandlerEnum_1.PositionHandlerEnum.NOT_TRACKING:
|
|
119
|
+
// if there is no previous positions with tracking status, set position as before_track
|
|
120
|
+
const firstShapesAnchorPoint = tripPositions.gtfsData.shapes_anchor_points[0];
|
|
121
|
+
if (context.lastPositionTracking === null) {
|
|
122
|
+
const firstStopTime = tripPositions.gtfsData.stop_times[0];
|
|
123
|
+
// if there is propagated delay we can use it for new position
|
|
124
|
+
const canDuplicatePropagatedDelay = context.lastPositionBeforeTrackDelayed !== null;
|
|
125
|
+
// if there is no delay to duplicate and DPP trip is far from start then invisible
|
|
126
|
+
const setAsInvisible = !canDuplicatePropagatedDelay &&
|
|
127
|
+
DPPUtils_1.default.isInvisible(tripPositions.agency_name_scheduled, position.origin_timestamp, startTimestamp, [position.lng, position.lat], firstShapesAnchorPoint.coordinates, schedule, tripPositions.gtfs_trip_id, context.lastPositionTracking, position.tracking);
|
|
128
|
+
positionToUpdate = Object.assign({ id: position.id, next_stop_arrival_time: startDayTimestamp + firstStopTime.arrival_time_seconds * 1000, next_stop_departure_time: startDayTimestamp + firstStopTime.departure_time_seconds * 1000, next_stop_id: firstStopTime.stop_id, next_stop_sequence: firstStopTime.stop_sequence, next_stop_name: firstStopTime.stop.stop_name, shape_dist_traveled: firstStopTime.shape_dist_traveled, state_position: setAsInvisible ? const_1.StatePositionEnum.INVISIBLE : const_1.StatePositionEnum.BEFORE_TRACK, state_process: const_1.StateProcessEnum.PROCESSED }, (firstStopTime.stop_headsign && {
|
|
129
|
+
last_stop_headsign: firstStopTime.stop_headsign,
|
|
130
|
+
}));
|
|
131
|
+
if (!setAsInvisible && canDuplicatePropagatedDelay) {
|
|
132
|
+
positionToUpdate.delay = context.lastPositionBeforeTrackDelayed.delay;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
// if there is tracking 2 position with same origin_timestamp then this position is duplicate
|
|
137
|
+
const statePosition = tripPositions.positions.find((e) => e.origin_timestamp === position.origin_timestamp && e.tracking === const_1.PositionTrackingEnum.TRACKING)
|
|
138
|
+
? const_1.StatePositionEnum.DUPLICATE
|
|
139
|
+
: const_1.StatePositionEnum.AFTER_TRACK;
|
|
140
|
+
const lastShapesAnchorPoint = tripPositions.gtfsData.shapes_anchor_points[tripPositions.gtfsData.shapes_anchor_points.length - 1];
|
|
141
|
+
const lastStopTime = tripPositions.gtfsData.stop_times[tripPositions.gtfsData.stop_times.length - 1];
|
|
142
|
+
// set as invisible if there are some AFTER_TRACK before
|
|
143
|
+
const setAsInvisible = DPPUtils_1.default.isInvisible(tripPositions.agency_name_scheduled, position.origin_timestamp, startTimestamp, [position.lng, position.lat], firstShapesAnchorPoint.coordinates, schedule, tripPositions.gtfs_trip_id, context.lastPositionTracking, position.tracking) && statePosition === const_1.StatePositionEnum.AFTER_TRACK;
|
|
144
|
+
positionToUpdate = Object.assign({ id: position.id, last_stop_arrival_time: startDayTimestamp + lastShapesAnchorPoint.time_scheduled_seconds * 1000, last_stop_departure_time: startDayTimestamp + lastShapesAnchorPoint.time_scheduled_seconds * 1000, last_stop_id: lastStopTime.stop_id, last_stop_sequence: lastShapesAnchorPoint.last_stop_sequence, shape_dist_traveled: lastShapesAnchorPoint.shape_dist_traveled, state_position: setAsInvisible ? const_1.StatePositionEnum.INVISIBLE : statePosition, state_process: const_1.StateProcessEnum.PROCESSED }, (lastStopTime.stop_headsign && {
|
|
145
|
+
last_stop_headsign: lastStopTime.stop_headsign,
|
|
146
|
+
}));
|
|
147
|
+
}
|
|
148
|
+
break;
|
|
149
|
+
case PositionHandlerEnum_1.PositionHandlerEnum.CANCELED:
|
|
150
|
+
positionToUpdate = {
|
|
151
|
+
id: position.id,
|
|
152
|
+
state_position: const_1.StatePositionEnum.CANCELED,
|
|
153
|
+
state_process: const_1.StateProcessEnum.PROCESSED,
|
|
154
|
+
};
|
|
155
|
+
break;
|
|
156
|
+
case PositionHandlerEnum_1.PositionHandlerEnum.DO_NOTHING:
|
|
157
|
+
break;
|
|
158
|
+
default:
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
// if not null push to update
|
|
162
|
+
if (positionToUpdate) {
|
|
163
|
+
positionToUpdate.valid_to = ValidToCalculator_1.default.getValidToAttribute(positionToUpdate, position, gtfsRouteType, tripPositions.gtfsData, startTimestamp, startDayTimestamp);
|
|
164
|
+
computedPositions.push(positionToUpdate);
|
|
165
|
+
}
|
|
166
|
+
// set if last position is AFTER_TRACK
|
|
167
|
+
context.isLastPositionAfterTrack =
|
|
168
|
+
(positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) === const_1.StatePositionEnum.AFTER_TRACK ||
|
|
169
|
+
position.state_position === const_1.StatePositionEnum.AFTER_TRACK;
|
|
170
|
+
// set last known BEFORE_TRACK_DELAYED position
|
|
171
|
+
if (position.state_position === const_1.StatePositionEnum.BEFORE_TRACK_DELAYED) {
|
|
172
|
+
context.lastPositionBeforeTrackDelayed = {
|
|
173
|
+
delay: position.delay,
|
|
174
|
+
origin_timestamp: position.origin_timestamp,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
// set last position tracking (only for at_stop and on_track)
|
|
178
|
+
if ((positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) === const_1.StatePositionEnum.AT_STOP ||
|
|
179
|
+
(positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) === const_1.StatePositionEnum.ON_TRACK ||
|
|
180
|
+
position.state_position === const_1.StatePositionEnum.AT_STOP ||
|
|
181
|
+
position.state_position === const_1.StatePositionEnum.ON_TRACK) {
|
|
182
|
+
context.lastPositionTracking = turf.point([position.lng, position.lat], Object.assign(Object.assign({}, position), positionToUpdate));
|
|
183
|
+
}
|
|
184
|
+
// set new first position at stop streak if this stop seqence is set and it is not same as before
|
|
185
|
+
if (positionToUpdate
|
|
186
|
+
? positionToUpdate.this_stop_sequence &&
|
|
187
|
+
context.atStopStreak.stop_sequence !== positionToUpdate.this_stop_sequence
|
|
188
|
+
: position.this_stop_sequence && context.atStopStreak.stop_sequence !== position.this_stop_sequence) {
|
|
189
|
+
context.atStopStreak.stop_sequence = positionToUpdate
|
|
190
|
+
? positionToUpdate.this_stop_sequence
|
|
191
|
+
: position.this_stop_sequence;
|
|
192
|
+
context.atStopStreak.firstPositionTimestamp = position.origin_timestamp;
|
|
193
|
+
context.atStopStreak.firstPositionDelay = positionToUpdate ? positionToUpdate.delay : position.delay;
|
|
194
|
+
}
|
|
195
|
+
// IF currently updated position / position was processed before
|
|
196
|
+
// and it is NOT AT_STOP
|
|
197
|
+
if (positionToUpdate ? !positionToUpdate.this_stop_sequence : !position.this_stop_sequence) {
|
|
198
|
+
// THEN disrupt atStopStreak
|
|
199
|
+
context.atStopStreak.stop_sequence = null;
|
|
200
|
+
}
|
|
201
|
+
// duplicated position should not be considered at all
|
|
202
|
+
if ((positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) !== const_1.StatePositionEnum.DUPLICATE &&
|
|
203
|
+
(positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) !== const_1.StatePositionEnum.INVISIBLE) {
|
|
204
|
+
context.lastPositionId = position.id;
|
|
205
|
+
context.lastPositionCanceled = position.is_canceled;
|
|
206
|
+
context.lastPositionOriginTimestamp = position.origin_timestamp;
|
|
207
|
+
}
|
|
208
|
+
// set delay
|
|
209
|
+
context.lastPositionDelay = positionToUpdate ? positionToUpdate.delay : position.delay;
|
|
210
|
+
_a.updatePositionsIterator(i + 1, options, schedule, cb);
|
|
211
|
+
});
|
|
212
|
+
/**
|
|
213
|
+
* Decide how to process input position data
|
|
214
|
+
*
|
|
215
|
+
* @param {IPosition} position - Input vehiclepositions_positions row data
|
|
216
|
+
* @returns {PositionHandlerEnum} - Returns action handler enum
|
|
217
|
+
*/
|
|
218
|
+
PositionsManager.setPositionUpdateHandler = (position) => {
|
|
219
|
+
if (position.state_process === const_1.StateProcessEnum.PROCESSED)
|
|
220
|
+
return PositionHandlerEnum_1.PositionHandlerEnum.DO_NOTHING;
|
|
221
|
+
if (position.is_canceled)
|
|
222
|
+
return PositionHandlerEnum_1.PositionHandlerEnum.CANCELED;
|
|
223
|
+
if (position.lat && position.lng && position.tracking === const_1.PositionTrackingEnum.TRACKING)
|
|
224
|
+
return PositionHandlerEnum_1.PositionHandlerEnum.TRACKING;
|
|
225
|
+
if (position.tracking !== const_1.PositionTrackingEnum.TRACKING)
|
|
226
|
+
return PositionHandlerEnum_1.PositionHandlerEnum.NOT_TRACKING;
|
|
227
|
+
return PositionHandlerEnum_1.PositionHandlerEnum.NOT_TRACKING;
|
|
228
|
+
};
|
|
229
|
+
/**
|
|
230
|
+
* Returns estimate of point on shape, where the trip should be with appropriate delay
|
|
231
|
+
*
|
|
232
|
+
* @param {IShapeAnchorPoint[]} tripShapePoints - Precalculated trip shape equidistant points with scheduled times
|
|
233
|
+
* @param {Feature<Point, ICurrentPositionProperties>} currentPosition - Current position of trip
|
|
234
|
+
* @param {IPositionsContext | null} context - Context state, holds information about previous positions
|
|
235
|
+
* @param {number} startDayTimestamp - Unix timestamp of midnight before trip starts
|
|
236
|
+
* @returns {IPositionToUpdate} - Position object to update
|
|
237
|
+
*/
|
|
238
|
+
PositionsManager.getEstimatedPoint = (tripGtfsData, currentPosition, context, startDayTimestamp, gtfsRouteType) => __awaiter(void 0, void 0, void 0, function* () {
|
|
239
|
+
var _b, _c, _d, _e, _f, _g;
|
|
240
|
+
// init radius around GPS position ( 200 meters radius, 16 points polygon aka circle)
|
|
241
|
+
const radius = 0.2;
|
|
242
|
+
//Initial value
|
|
243
|
+
let estimatedPoint = Object.assign({ id: currentPosition.properties.id, state_position: const_1.StatePositionEnum.OFF_TRACK, state_process: const_1.StateProcessEnum.PROCESSED, tcp_event: currentPosition.properties.tcp_event, valid_to: ValidToCalculator_1.default.getDefaultValidToAttribute(currentPosition.properties.origin_timestamp) }, (context &&
|
|
244
|
+
((_b = context.lastPositionTracking) === null || _b === void 0 ? void 0 : _b.properties.last_stop_sequence) && {
|
|
245
|
+
shape_dist_traveled: (_c = context.lastPositionTracking) === null || _c === void 0 ? void 0 : _c.properties.shape_dist_traveled,
|
|
246
|
+
last_stop_arrival_time: (_d = context.lastPositionTracking) === null || _d === void 0 ? void 0 : _d.properties.last_stop_arrival_time,
|
|
247
|
+
last_stop_departure_time: (_e = context.lastPositionTracking) === null || _e === void 0 ? void 0 : _e.properties.last_stop_departure_time,
|
|
248
|
+
last_stop_sequence: (_f = context.lastPositionTracking) === null || _f === void 0 ? void 0 : _f.properties.last_stop_sequence,
|
|
249
|
+
last_stop_id: (_g = context.lastPositionTracking) === null || _g === void 0 ? void 0 : _g.properties.last_stop_id,
|
|
250
|
+
}));
|
|
251
|
+
// returns array of segments (row of points) of shape anchor points around gps
|
|
252
|
+
const ptsInRadius = yield PositionCalculator_1.default.getShapePointsAroundPosition(tripGtfsData.shapes_anchor_points, currentPosition, radius, tripGtfsData.trip_id);
|
|
253
|
+
if (ptsInRadius.length < 1) {
|
|
254
|
+
return estimatedPoint;
|
|
255
|
+
}
|
|
256
|
+
// picks only closest point for each segment
|
|
257
|
+
const closestPts = yield PositionCalculator_1.default.getClosestPoints(ptsInRadius, currentPosition);
|
|
258
|
+
if (closestPts.length < 1) {
|
|
259
|
+
return estimatedPoint;
|
|
260
|
+
}
|
|
261
|
+
// DECIDE WHICH POINT IS PROBABLY RIGHT
|
|
262
|
+
return _a.getClosestPoint(currentPosition, context, startDayTimestamp, closestPts, tripGtfsData, gtfsRouteType);
|
|
263
|
+
});
|
|
264
|
+
/**
|
|
265
|
+
* Picks only one closest point for multiple possible points based on delay of last position and stop times
|
|
266
|
+
*
|
|
267
|
+
* @param {Feature<Point, ICurrentPositionProperties>} currentPosition - Feature Point of current position
|
|
268
|
+
* @param {IPositionsContext | null} context - Context state, holds information about previous positions
|
|
269
|
+
* @param {number} startDayTimestamp - Unix timestamp of start of the day
|
|
270
|
+
* @param {IShapeAnchorPoint[]} closestPts - All closest points of possible segments
|
|
271
|
+
* @param {IComputationTrip} tripGtfsData - GTFS data and all set of known positions
|
|
272
|
+
* @returns {IPositionToUpdate} - Result point as position to update in DB
|
|
273
|
+
*/
|
|
274
|
+
PositionsManager.getClosestPoint = (currentPosition, context, startDayTimestamp, closestPts, tripGtfsData, gtfsRouteType) => __awaiter(void 0, void 0, void 0, function* () {
|
|
275
|
+
// want to find minimum difference of our prediction, where the bus should be
|
|
276
|
+
let minTimeRealDiff = Infinity;
|
|
277
|
+
const tripShapePoints = tripGtfsData.shapes_anchor_points;
|
|
278
|
+
const tripStopTimes = tripGtfsData.stop_times;
|
|
279
|
+
const lastTripShapePoint = tripShapePoints[tripShapePoints.length - 1];
|
|
280
|
+
const closestPtsIterator = (i, prevTimeDelay, estimatedPoint, cb) => {
|
|
281
|
+
// end of iteration
|
|
282
|
+
if (closestPts.length === i) {
|
|
283
|
+
return cb(estimatedPoint);
|
|
284
|
+
}
|
|
285
|
+
let thisClosestPoint = closestPts[i];
|
|
286
|
+
const timeScheduledTimestamp = _a.getLocalTimeToUnix(startDayTimestamp,
|
|
287
|
+
// take stop arrival time if is point at stop
|
|
288
|
+
thisClosestPoint.this_stop_sequence
|
|
289
|
+
? tripStopTimes[thisClosestPoint.this_stop_sequence - 1].arrival_time_seconds
|
|
290
|
+
: thisClosestPoint.time_scheduled_seconds);
|
|
291
|
+
let timeDelay = moment_1.default
|
|
292
|
+
.utc(currentPosition.properties.origin_timestamp)
|
|
293
|
+
.diff(timeScheduledTimestamp, "seconds");
|
|
294
|
+
// time where the bus should on this point
|
|
295
|
+
const timeProposed = thisClosestPoint.time_scheduled_seconds + prevTimeDelay;
|
|
296
|
+
// difference
|
|
297
|
+
const timeRealDiff = thisClosestPoint.time_scheduled_seconds + timeDelay - timeProposed;
|
|
298
|
+
// we look for the best fitting point
|
|
299
|
+
if (Math.abs(timeRealDiff) < Math.abs(minTimeRealDiff)) {
|
|
300
|
+
const isBusOrTram = gtfsRouteType === models_1.GTFSRouteTypeEnum.BUS || gtfsRouteType === models_1.GTFSRouteTypeEnum.TRAM;
|
|
301
|
+
minTimeRealDiff = timeRealDiff;
|
|
302
|
+
// push trip into nearest at_stop shape anchor point if trip "P" event (tram) / "V" event (bus)
|
|
303
|
+
if (isBusOrTram &&
|
|
304
|
+
currentPosition.properties.tcp_event === const_1.TCPEventEnum.ARRIVAL_ANNOUNCED &&
|
|
305
|
+
thisClosestPoint.this_stop_sequence === null) {
|
|
306
|
+
let movingShapePointIndex = thisClosestPoint.index;
|
|
307
|
+
while (thisClosestPoint.this_stop_sequence === null && movingShapePointIndex < lastTripShapePoint.index) {
|
|
308
|
+
movingShapePointIndex++;
|
|
309
|
+
thisClosestPoint = tripShapePoints[movingShapePointIndex];
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
let statePosition = thisClosestPoint.this_stop_sequence ? const_1.StatePositionEnum.AT_STOP : const_1.StatePositionEnum.ON_TRACK;
|
|
313
|
+
// test if TCP trip with DEPARTURED event should not bet at stop (not applied for last stop)
|
|
314
|
+
if (currentPosition.properties.tcp_event === const_1.TCPEventEnum.DEPARTURED &&
|
|
315
|
+
thisClosestPoint.this_stop_sequence !== lastTripShapePoint.this_stop_sequence) {
|
|
316
|
+
statePosition = const_1.StatePositionEnum.ON_TRACK;
|
|
317
|
+
}
|
|
318
|
+
// interpret the position state on the "V" event for trams and buses as "after track"
|
|
319
|
+
if (isBusOrTram && currentPosition.properties.tcp_event === const_1.TCPEventEnum.V) {
|
|
320
|
+
statePosition = const_1.StatePositionEnum.AFTER_TRACK;
|
|
321
|
+
thisClosestPoint = lastTripShapePoint;
|
|
322
|
+
timeDelay = null;
|
|
323
|
+
}
|
|
324
|
+
// lets correct delay if it is at stop
|
|
325
|
+
if (thisClosestPoint.this_stop_sequence && timeDelay) {
|
|
326
|
+
timeDelay = _a.getCorrectedTimeDelay(timeDelay, context, currentPosition, thisClosestPoint, {
|
|
327
|
+
departureTime: tripStopTimes[thisClosestPoint.this_stop_sequence - 1].departure_time_seconds,
|
|
328
|
+
arrivalTime: tripStopTimes[thisClosestPoint.this_stop_sequence - 1].arrival_time_seconds,
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
// save it for result
|
|
332
|
+
estimatedPoint = {
|
|
333
|
+
id: currentPosition.properties.id,
|
|
334
|
+
bearing: thisClosestPoint.bearing,
|
|
335
|
+
shape_dist_traveled: Math.round(thisClosestPoint.shape_dist_traveled * 1000) / 1000,
|
|
336
|
+
next_stop_id: tripStopTimes[thisClosestPoint.next_stop_sequence - 1].stop_id,
|
|
337
|
+
last_stop_id: tripStopTimes[thisClosestPoint.last_stop_sequence - 1].stop_id,
|
|
338
|
+
next_stop_name: tripStopTimes[thisClosestPoint.next_stop_sequence - 1].stop.stop_name,
|
|
339
|
+
last_stop_name: tripStopTimes[thisClosestPoint.last_stop_sequence - 1].stop.stop_name,
|
|
340
|
+
next_stop_sequence: thisClosestPoint.next_stop_sequence,
|
|
341
|
+
last_stop_sequence: thisClosestPoint.last_stop_sequence,
|
|
342
|
+
next_stop_arrival_time: _a.getLocalTimeToUnix(startDayTimestamp, tripStopTimes[thisClosestPoint.next_stop_sequence - 1].arrival_time_seconds),
|
|
343
|
+
last_stop_arrival_time: _a.getLocalTimeToUnix(startDayTimestamp, tripStopTimes[thisClosestPoint.last_stop_sequence - 1].arrival_time_seconds),
|
|
344
|
+
next_stop_departure_time: _a.getLocalTimeToUnix(startDayTimestamp, tripStopTimes[thisClosestPoint.next_stop_sequence - 1].departure_time_seconds),
|
|
345
|
+
last_stop_departure_time: _a.getLocalTimeToUnix(startDayTimestamp, tripStopTimes[thisClosestPoint.last_stop_sequence - 1].departure_time_seconds),
|
|
346
|
+
delay: timeDelay,
|
|
347
|
+
this_stop_id: (statePosition === const_1.StatePositionEnum.AT_STOP &&
|
|
348
|
+
thisClosestPoint.this_stop_sequence &&
|
|
349
|
+
tripStopTimes[thisClosestPoint.this_stop_sequence - 1].stop_id) ||
|
|
350
|
+
undefined,
|
|
351
|
+
this_stop_name: (statePosition === const_1.StatePositionEnum.AT_STOP &&
|
|
352
|
+
thisClosestPoint.this_stop_sequence &&
|
|
353
|
+
tripStopTimes[thisClosestPoint.this_stop_sequence - 1].stop.stop_name) ||
|
|
354
|
+
undefined,
|
|
355
|
+
this_stop_sequence: (statePosition === const_1.StatePositionEnum.AT_STOP && thisClosestPoint.this_stop_sequence) || undefined,
|
|
356
|
+
last_stop_headsign: tripStopTimes[thisClosestPoint.last_stop_sequence - 1].stop_headsign || undefined,
|
|
357
|
+
state_position: statePosition,
|
|
358
|
+
state_process: const_1.StateProcessEnum.PROCESSED,
|
|
359
|
+
valid_to: ValidToCalculator_1.default.getDefaultValidToAttribute(currentPosition.properties.origin_timestamp),
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
// next step
|
|
363
|
+
closestPtsIterator(i + 1, prevTimeDelay, estimatedPoint, cb);
|
|
364
|
+
};
|
|
365
|
+
return new Promise((resolve) => {
|
|
366
|
+
var _b, _c;
|
|
367
|
+
closestPtsIterator(0, (_c = (_b = context === null || context === void 0 ? void 0 : context.lastPositionTracking) === null || _b === void 0 ? void 0 : _b.properties.delay) !== null && _c !== void 0 ? _c : 0, null, (estimatedPoint) => {
|
|
368
|
+
resolve(estimatedPoint);
|
|
369
|
+
});
|
|
370
|
+
});
|
|
371
|
+
});
|
|
372
|
+
/**
|
|
373
|
+
* Returns unix in miliseconds for stop time
|
|
374
|
+
* + given by start of day when trip starts
|
|
375
|
+
* + and GTFS HH:mm:ss format of stop time in seconds
|
|
376
|
+
*
|
|
377
|
+
* @param {number} startDayTimestamp - Unix timestamp of local time midnight before trip starts
|
|
378
|
+
* @param {number} timeSeconds - Number of seconds given by HH:mm:ss format of GTFS stop time
|
|
379
|
+
* @returns {number} - Returns unix milisecods
|
|
380
|
+
*/
|
|
381
|
+
PositionsManager.getLocalTimeToUnix = (startDayTimestamp, timeSeconds) => {
|
|
382
|
+
return (0, moment_1.default)(startDayTimestamp)
|
|
383
|
+
.tz("Europe/Prague")
|
|
384
|
+
.startOf("day")
|
|
385
|
+
.hours(Math.floor(timeSeconds / 3600))
|
|
386
|
+
.minutes(Math.floor((timeSeconds % 3600) / 60))
|
|
387
|
+
.seconds(timeSeconds % 60)
|
|
388
|
+
.valueOf();
|
|
389
|
+
};
|
|
390
|
+
/**
|
|
391
|
+
* Corrects time delay at stop with dwelling time
|
|
392
|
+
*
|
|
393
|
+
* @param {number} timeDelay - Initial computed delay in seconds, can be negative for trip ahead
|
|
394
|
+
* @param {IPositionsContext | null} context - Context state, holds information about previous positions
|
|
395
|
+
* @param {Feature<Point, ICurrentPositionProperties>} currentPosition - Feature Point of current position
|
|
396
|
+
* @param {IShapeAnchorPoint} thisClosestPoint - Closest point of shape anchors
|
|
397
|
+
* @param { departureTime: number; arrivalTime: number } stopTimes - departure and arrival stop times in seconds
|
|
398
|
+
* @returns {number} - Result delay in seconds, can be negative for trip ahead
|
|
399
|
+
*/
|
|
400
|
+
PositionsManager.getCorrectedTimeDelay = (timeDelay, context, currentPosition, thisClosestPoint, stopTimes) => {
|
|
401
|
+
// compute dwell time in stop, most common is zero
|
|
402
|
+
const stopDwellTimeSeconds = stopTimes.departureTime - stopTimes.arrivalTime;
|
|
403
|
+
// if dwell time is sheduled as zero, return initial computed delay
|
|
404
|
+
if (stopDwellTimeSeconds <= 0) {
|
|
405
|
+
return timeDelay;
|
|
406
|
+
}
|
|
407
|
+
// if last position was not in this same stop or there is no last position at all
|
|
408
|
+
if (!context || context.atStopStreak.stop_sequence !== thisClosestPoint.this_stop_sequence) {
|
|
409
|
+
// timeDelay >= 0 trip is DELAYED
|
|
410
|
+
// we presume it will lower delay by shortening its scheduled dwell time,
|
|
411
|
+
// cant go under zero of course, trip should not go ahead
|
|
412
|
+
// else trip is AHeAD
|
|
413
|
+
// left computed delay as it was
|
|
414
|
+
return timeDelay >= 0 ? Math.max(timeDelay - stopDwellTimeSeconds, 0) : timeDelay;
|
|
415
|
+
}
|
|
416
|
+
// we presume that first position at same stop is real arrival time
|
|
417
|
+
if (context.atStopStreak.firstPositionDelay >= 0) {
|
|
418
|
+
// trip was DELAYED before
|
|
419
|
+
// we presume it will lower delay by shortening its scheduled dwell time,
|
|
420
|
+
// cant go under zero of course, trip should not go ahead
|
|
421
|
+
return Math.max(timeDelay - stopDwellTimeSeconds, 0);
|
|
422
|
+
}
|
|
423
|
+
// trip was AHEAD before
|
|
424
|
+
// real dwell time so far
|
|
425
|
+
const realDwellTimeSeconds = Math.round((currentPosition.properties.origin_timestamp - context.atStopStreak.firstPositionTimestamp) / 1000);
|
|
426
|
+
// if real dwell is longer than scheduled, then add to negative delay time
|
|
427
|
+
return context.atStopStreak.firstPositionDelay + Math.max(realDwellTimeSeconds - stopDwellTimeSeconds, 0);
|
|
428
|
+
};
|
|
429
|
+
/**
|
|
430
|
+
* Compute UTC timestamp of start of day when trip starts
|
|
431
|
+
*
|
|
432
|
+
* @param {number} startTimestamp - Unix timestamp of start of the trip
|
|
433
|
+
* @param {number} firstStopTimeScheduledSeconds - Number of seconds from midnight of first stop departure
|
|
434
|
+
* @returns {number} - Returns unix timestamp in milliseconds.
|
|
435
|
+
*/
|
|
436
|
+
PositionsManager.getStartDayTimestamp = (startTimestamp, firstStopTimeScheduledSeconds) => {
|
|
437
|
+
let startDayTimestamp = moment_1.default.utc(startTimestamp).tz("Europe/Prague").startOf("day");
|
|
438
|
+
const stopTimeDayOverflow = Math.floor(firstStopTimeScheduledSeconds / (60 * 60 * 24));
|
|
439
|
+
// if trip has 24+ stop times set real startDay to yesterday
|
|
440
|
+
if (stopTimeDayOverflow > 0) {
|
|
441
|
+
startDayTimestamp.subtract(1, "day");
|
|
442
|
+
}
|
|
443
|
+
return startDayTimestamp.valueOf();
|
|
444
|
+
};
|
|
445
|
+
//# sourceMappingURL=PositionsManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PositionsManager.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/helpers/PositionsManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -161,8 +161,8 @@ class GTFSStopModel extends models_1.SequelizeModel {
|
|
|
161
161
|
// indicating a metro or train stop
|
|
162
162
|
// EX: U1040Z16P Na Knížecí + U1040Z101P Anděl
|
|
163
163
|
query += `
|
|
164
|
-
UNION
|
|
165
|
-
SELECT
|
|
164
|
+
UNION
|
|
165
|
+
SELECT ${attributes.map((a) => `stops."${a}"`).join(",")}
|
|
166
166
|
FROM ${ropid_gtfs_1.RopidGTFS.stops.pgTableName} AS stops
|
|
167
167
|
LEFT JOIN ${ropid_gtfs_1.RopidGTFS.stops.pgTableName} AS stops_self ON stops.stop_id LIKE (
|
|
168
168
|
'U' || (REGEXP_MATCH(stops_self.stop_id, '^U(\\d*)Z\\d*.*$'))[1] || 'Z%'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GTFSStopModel.js","sourceRoot":"","sources":["../../../../src/output-gateway/ropid-gtfs/models/GTFSStopModel.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"GTFSStopModel.js","sourceRoot":"","sources":["../../../../src/output-gateway/ropid-gtfs/models/GTFSStopModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -214,7 +214,6 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
214
214
|
speed: last_position.speed,
|
|
215
215
|
state_position: last_position.state_position || null,
|
|
216
216
|
tracking: last_position.tracking === const_1.PositionTrackingEnum.TRACKING ? true : false,
|
|
217
|
-
valid_to: last_position.valid_to,
|
|
218
217
|
}, trip: {
|
|
219
218
|
agency_name: {
|
|
220
219
|
real: trip.agency_name_real,
|
|
@@ -298,6 +297,7 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
298
297
|
this.convertEpochMsColumnToISOString("next_stop_departure_time", options.preferredTimezone),
|
|
299
298
|
this.convertEpochMsColumnToISOString("origin_timestamp", options.preferredTimezone),
|
|
300
299
|
],
|
|
300
|
+
exclude: ["valid_to"],
|
|
301
301
|
},
|
|
302
302
|
as: "last_position",
|
|
303
303
|
model: database_1.sequelizeConnection.models[vehicle_positions_1.VehiclePositions.positions.pgTableName],
|
|
@@ -325,6 +325,7 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
325
325
|
this.convertEpochMsColumnToISOString("next_stop_departure_time", options.preferredTimezone),
|
|
326
326
|
this.convertEpochMsColumnToISOString("origin_timestamp", options.preferredTimezone),
|
|
327
327
|
],
|
|
328
|
+
exclude: ["valid_to"],
|
|
328
329
|
},
|
|
329
330
|
as: "all_positions",
|
|
330
331
|
model: database_1.sequelizeConnection.models[vehicle_positions_1.VehiclePositions.positions.pgTableName],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VehiclePositionsTripsModel.js","sourceRoot":"","sources":["../../../../src/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6EAAuE;AACvE,iFAAgH;AAChH,gGAA+D;AAE/D,yEAAiF;AACjF,+DAAkI;AAClI,qEAA0E;AAC1E,qFAA0D;AAC1D,0CAAuG;AAEvG,MAAa,0BAA2B,SAAQ,uBAAc;IAI1D;QACI,KAAK,CAAC,oCAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,oCAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,oCAAgB,CAAC,KAAK,CAAC,yBAAyB,EAAE;YACrH,MAAM,EAAE,oCAAgB,CAAC,QAAQ;SACpC,CAAC,CAAC;QAGA,cAAS,GAAG,CAAC,CAA0B,EAAE,EAAE;YAC9C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,cAAc,EAAE;gBACzE,EAAE,EAAE,eAAe;gBACnB,UAAU,EAAE,UAAU;aACzB,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,8BAA8B,CAAC,cAAc,EAAE;gBAC3E,EAAE,EAAE,eAAe;gBACnB,UAAU,EAAE,kBAAkB;aACjC,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,iCAAiC,CAAC,cAAc,EAAE;gBAC9E,EAAE,EAAE,cAAc;gBAClB,UAAU,EAAE,iBAAiB;aAChC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF;;;;;;;;;;WAUG;QACI,WAAM,GAAG,CAAO,OAYtB,EAAgB,EAAE;YACf,IAAI;gBACA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;gBAChD,MAAM,YAAY,GAAG,IAAA,yBAAM,GAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBAEtD,kDAAkD;gBAClD,MAAM,YAAY,GACd,YAAY,IAAI,IAAA,yBAAM,EAAC,YAAY,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAEzG,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC3C,UAAU,EAAE;wBACR,OAAO,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,+BAA+B,CAAC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;qBAC9G;oBACD,OAAO;oBACP,KAAK;oBACL,MAAM;oBACN,KAAK,EAAE;wBACH,CAAC,cAAE,CAAC,GAAG,CAAC,EAAE;4BACN;gCACI,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE;oCACL,EAAE,YAAY,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;oCACnC;wCACI,2BAA2B,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,yCAAiC,EAAE;qCAC9E;iCACJ;6BACJ;4BACD,YAAY;gCACR,CAAC,CAAC;oCACI,UAAU,EAAE;wCACR,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,YAAY;qCACxB;iCACJ;gCACH,CAAC,CAAC,EAAE;4BACR,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE;4BACvE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;4BACzD,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;4BAC/E,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;yBACzD;qBACJ;iBACJ,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnB,OAAO;wBACH,IAAI,EAAE,IAAA,mCAA6B,EAAC,EAAE,CAAC;wBACvC,QAAQ,EAAE;4BACN,cAAc,EAAE,YAAY,IAAI,IAAA,yBAAM,GAAE,CAAC,WAAW,EAAE;yBACzD;qBACJ,CAAC;iBACL;gBAED,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,gBAAgB,GAAG,IAAI,CAAC;gBAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;oBACpB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvC,IAAI,GAAG,CAAC,UAAU,GAAG,gBAAgB,EAAE;wBACnC,gBAAgB,GAAG,GAAG,CAAC,UAAU,CAAC;qBACrC;iBACJ;gBAED,OAAO;oBACH,IAAI,EAAE,IAAA,mCAA6B,EAAC,UAAU,CAAC;oBAC/C,QAAQ,EAAE;wBACN,cAAc,EAAE,gBAAgB,IAAI,IAAA,yBAAM,GAAE,CAAC,WAAW,EAAE;qBAC7D;iBACJ,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,4BAAW,CAAC,gBAAgB,EAAE,IAAI,EAAE,4BAA4B,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aACzF;QACL,CAAC,CAAA,CAAC;QAEF;;;;;;WAMG;QACI,uBAAkB,GAAG,CACxB,EAAU,EACV,OAKC,EACqB,EAAE;YACxB,IAAI;gBACA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC3C,UAAU,EAAE;wBACR,OAAO,EAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;qBAChG;oBACD,OAAO;oBACP,KAAK,EAAE,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;oBACpC,KAAK,EAAE;wBACH,YAAY,EAAE,EAAE;qBACnB;iBACJ,CAAC,CAAC;gBAEH,IAAI,CAAC,IAAI,EAAE;oBACP,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACjC;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,4BAAW,CAAC,gBAAgB,EAAE,IAAI,EAAE,4BAA4B,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aACzF;QACL,CAAC,CAAA,CAAC;QAEF;;;;WAIG;QACK,gBAAW,GAAG,CAAC,IAAS,EAAmB,EAAE;;YACjD,MAAM,KAA+E,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAjH,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,GAAG,EAAE,OAAgD,EAA3C,IAAI,cAA1E,oEAA4E,CAAqC,CAAC;YAExH,MAAM,UAAU,mBACZ,aAAa,EAAE;oBACX,uCAAuC;oBACvC,wFAAwF;oBACxF,OAAO,EAAE,aAAa,CAAC,OAAO;oBAC9B,KAAK,EAAE;wBACH,MAAM,EAAE,aAAa,CAAC,KAAK;wBAC3B,iBAAiB,EAAE,aAAa,CAAC,kBAAkB;wBACnD,mBAAmB,EAAE,aAAa,CAAC,oBAAoB;qBAC1D;oBACD,WAAW,EAAE,aAAa,CAAC,WAAW;oBACtC,SAAS,EAAE;wBACP,YAAY,EAAE,aAAa,CAAC,gCAAgC;wBAC5D,cAAc,EAAE,aAAa,CAAC,kCAAkC;wBAChE,EAAE,EAAE,aAAa,CAAC,YAAY;wBAC9B,QAAQ,EAAE,aAAa,CAAC,kBAAkB;qBAC7C;oBACD,SAAS,EAAE;wBACP,YAAY,EAAE,aAAa,CAAC,gCAAgC;wBAC5D,cAAc,EAAE,aAAa,CAAC,kCAAkC;wBAChE,EAAE,EAAE,aAAa,CAAC,YAAY;wBAC9B,QAAQ,EAAE,aAAa,CAAC,kBAAkB;qBAC7C;oBACD,gBAAgB,EAAE,aAAa,CAAC,0BAA0B;oBAC1D,mBAAmB,EAAE,aAAa,CAAC,mBAAmB;oBACtD,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,cAAc,EAAE,aAAa,CAAC,cAAc,IAAI,IAAI;oBACpD,QAAQ,EAAE,aAAa,CAAC,QAAQ,KAAK,4BAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;
|
|
1
|
+
{"version":3,"file":"VehiclePositionsTripsModel.js","sourceRoot":"","sources":["../../../../src/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.ts"],"names":[],"mappings":"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"}
|