@golemio/pid 2.12.1 → 2.12.2-dev.1208525749
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/db/example/12_metro_line_A_gtfs_trips.sql +0 -5
- package/db/example/18_metroRailtrack.sql +369 -0
- package/dist/helpers/RouteTypeEnums.d.ts +1 -0
- package/dist/helpers/RouteTypeEnums.js +1 -0
- package/dist/helpers/RouteTypeEnums.js.map +1 -1
- package/dist/input-gateway/vehicle-positions/VehiclePositionsController.js +1 -1
- package/dist/input-gateway/vehicle-positions/VehiclePositionsController.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/SaveMetroRailtrackDataToDBTask.js +4 -0
- package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/SaveMetroRailtrackDataToDBTask.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/data-access/MetroRailtrackGPSRepository.js +16 -3
- package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/data-access/MetroRailtrackGPSRepository.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/Di.js +8 -0
- package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +3 -0
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +9 -0
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.d.ts +7 -2
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js +31 -5
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.d.ts +3 -0
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.js +12 -0
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.d.ts +1 -4
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.js +5 -21
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/metro/CachedMetroRailtrackLookup.d.ts +9 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/metro/CachedMetroRailtrackLookup.js +59 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/metro/CachedMetroRailtrackLookup.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.d.ts +3 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.js +13 -3
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js +5 -22
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/MetroDelayAtStop.js +2 -6
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/MetroDelayAtStop.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/metro/MetroShapePointsFixer.d.ts +12 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/metro/MetroShapePointsFixer.js +121 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/metro/MetroShapePointsFixer.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.d.ts +3 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js +89 -33
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.d.ts +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.js +7 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.d.ts +3 -6
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js +19 -25
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js.map +1 -1
- package/package.json +3 -3
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VPContainer = void 0;
|
|
4
4
|
const Di_1 = require("../../ioc/Di");
|
|
5
|
+
const MetroRailtrackGPSRepository_1 = require("../../ropid-gtfs/workers/railtrack/tasks/data-access/MetroRailtrackGPSRepository");
|
|
5
6
|
const RegionalBusRunsMessagesRepository_1 = require("../workers/runs/data-access/RegionalBusRunsMessagesRepository");
|
|
6
7
|
const RegionalBusCisCacheRepository_1 = require("../workers/runs/data-access/cache/RegionalBusCisCacheRepository");
|
|
7
8
|
const RegionalBusGtfsCacheRepository_1 = require("../workers/runs/data-access/cache/RegionalBusGtfsCacheRepository");
|
|
@@ -26,6 +27,8 @@ const RefreshPublicStopTimeCacheTask_1 = require("../workers/vehicle-positions/t
|
|
|
26
27
|
const RefreshPublicTripCacheTask_1 = require("../workers/vehicle-positions/tasks/RefreshPublicTripCacheTask");
|
|
27
28
|
const PublicApiTripTransformation_1 = require("../workers/vehicle-positions/transformations/PublicApiTripTransformation");
|
|
28
29
|
const VPContainerToken_1 = require("./VPContainerToken");
|
|
30
|
+
const CachedMetroRailtrackLookup_1 = require("../workers/vehicle-positions/data-access/metro/CachedMetroRailtrackLookup");
|
|
31
|
+
const MetroShapePointsFixer_1 = require("../workers/vehicle-positions/helpers/metro/MetroShapePointsFixer");
|
|
29
32
|
//#region Initialization
|
|
30
33
|
const VPContainer = Di_1.PidContainer.createChildContainer();
|
|
31
34
|
exports.VPContainer = VPContainer;
|
|
@@ -42,6 +45,8 @@ VPContainer.register(VPContainerToken_1.VPContainerToken.RegionalBusRunsMessages
|
|
|
42
45
|
VPContainer.register(VPContainerToken_1.VPContainerToken.PublicStopTimeRepository, PublicStopTimeRepository_1.PublicStopTimeRepository);
|
|
43
46
|
VPContainer.register(VPContainerToken_1.VPContainerToken.PublicApiCacheRepository, PublicApiCacheRepository_1.PublicApiCacheRepository);
|
|
44
47
|
VPContainer.register(VPContainerToken_1.VPContainerToken.PublicStopTimeCacheRepository, PublicStopTimeCacheRepository_1.PublicStopTimeCacheRepository);
|
|
48
|
+
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.MetroRailtrackGPSRepository, MetroRailtrackGPSRepository_1.MetroRailtrackGPSRepository);
|
|
49
|
+
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.CachedMetroRailTrackLookup, CachedMetroRailtrackLookup_1.CachedMetroRailTrackLookup);
|
|
45
50
|
//#endregion
|
|
46
51
|
//#region Transformations
|
|
47
52
|
VPContainer.register(VPContainerToken_1.VPContainerToken.DescriptorTransformation, DescriptorTransformation_1.DescriptorTransformation);
|
|
@@ -56,6 +61,9 @@ VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.TripScheduleMa
|
|
|
56
61
|
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RegionalBusMessageFilter, RegionalBusMessageFilter_1.RegionalBusMessageFilter);
|
|
57
62
|
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RegionalBusRunsFacade, RegionalBusRunsFacade_1.RegionalBusRunsFacade);
|
|
58
63
|
//#endregion
|
|
64
|
+
//#region Helpers
|
|
65
|
+
VPContainer.register(VPContainerToken_1.VPContainerToken.MetroShapePointsFixer, MetroShapePointsFixer_1.MetroShapePointsFixer);
|
|
66
|
+
//#endregion
|
|
59
67
|
//#region Tasks
|
|
60
68
|
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshDescriptorsTask, RefreshDescriptorsTask_1.RefreshDescriptorsTask);
|
|
61
69
|
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.SaveArrivaCityRunsToDBTask, SaveArrivaCityRunsToDBTask_1.SaveArrivaCityRunsToDBTask);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/Di.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,5 +23,8 @@ declare const VPContainerToken: {
|
|
|
23
23
|
DescriptorFilter: symbol;
|
|
24
24
|
RefreshDescriptorsTask: symbol;
|
|
25
25
|
DeleteDataTask: symbol;
|
|
26
|
+
MetroRailtrackGPSRepository: symbol;
|
|
27
|
+
CachedMetroRailTrackLookup: symbol;
|
|
28
|
+
MetroShapePointsFixer: symbol;
|
|
26
29
|
};
|
|
27
30
|
export { VPContainerToken };
|
|
@@ -32,6 +32,15 @@ const VPContainerToken = {
|
|
|
32
32
|
RefreshDescriptorsTask: Symbol(),
|
|
33
33
|
DeleteDataTask: Symbol(),
|
|
34
34
|
//#endregion
|
|
35
|
+
//#region Vehicle Positions
|
|
36
|
+
//#region DataAccess
|
|
37
|
+
MetroRailtrackGPSRepository: Symbol(),
|
|
38
|
+
CachedMetroRailTrackLookup: Symbol(),
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region Helpers
|
|
41
|
+
MetroShapePointsFixer: Symbol(),
|
|
42
|
+
//#endregion
|
|
43
|
+
//#endregion
|
|
35
44
|
};
|
|
36
45
|
exports.VPContainerToken = VPContainerToken;
|
|
37
46
|
//# sourceMappingURL=VPContainerToken.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VPContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/VPContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,gBAAgB,GAAG;IACrB,2BAA2B;IAC3B,wBAAwB,EAAE,MAAM,EAAE;IAClC,wBAAwB,EAAE,MAAM,EAAE;IAClC,6BAA6B,EAAE,MAAM,EAAE;IACvC,2BAA2B,EAAE,MAAM,EAAE;IACrC,0BAA0B,EAAE,MAAM,EAAE;IACpC,8BAA8B,EAAE,MAAM,EAAE;IACxC,YAAY;IAEZ,cAAc;IACd,6BAA6B,EAAE,MAAM,EAAE;IACvC,8BAA8B,EAAE,MAAM,EAAE;IACxC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,qCAAqC,EAAE,MAAM,EAAE;IAC/C,gBAAgB,EAAE,MAAM,EAAE;IAC1B,iBAAiB,EAAE,MAAM,EAAE;IAC3B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,wBAAwB,EAAE,MAAM,EAAE;IAClC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,0BAA0B,EAAE,MAAM,EAAE;IACpC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,YAAY;IAEZ,6BAA6B;IAC7B,gCAAgC,EAAE,MAAM,EAAE;IAC1C,2BAA2B,EAAE,MAAM,EAAE;IACrC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,wBAAwB,EAAE,MAAM,EAAE;IAClC,gBAAgB,EAAE,MAAM,EAAE;IAC1B,sBAAsB,EAAE,MAAM,EAAE;IAChC,cAAc,EAAE,MAAM,EAAE;IACxB,YAAY;CACf,CAAC;AAEO,4CAAgB"}
|
|
1
|
+
{"version":3,"file":"VPContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/VPContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,gBAAgB,GAAG;IACrB,2BAA2B;IAC3B,wBAAwB,EAAE,MAAM,EAAE;IAClC,wBAAwB,EAAE,MAAM,EAAE;IAClC,6BAA6B,EAAE,MAAM,EAAE;IACvC,2BAA2B,EAAE,MAAM,EAAE;IACrC,0BAA0B,EAAE,MAAM,EAAE;IACpC,8BAA8B,EAAE,MAAM,EAAE;IACxC,YAAY;IAEZ,cAAc;IACd,6BAA6B,EAAE,MAAM,EAAE;IACvC,8BAA8B,EAAE,MAAM,EAAE;IACxC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,qCAAqC,EAAE,MAAM,EAAE;IAC/C,gBAAgB,EAAE,MAAM,EAAE;IAC1B,iBAAiB,EAAE,MAAM,EAAE;IAC3B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,wBAAwB,EAAE,MAAM,EAAE;IAClC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,0BAA0B,EAAE,MAAM,EAAE;IACpC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,YAAY;IAEZ,6BAA6B;IAC7B,gCAAgC,EAAE,MAAM,EAAE;IAC1C,2BAA2B,EAAE,MAAM,EAAE;IACrC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,wBAAwB,EAAE,MAAM,EAAE;IAClC,gBAAgB,EAAE,MAAM,EAAE;IAC1B,sBAAsB,EAAE,MAAM,EAAE;IAChC,cAAc,EAAE,MAAM,EAAE;IACxB,YAAY;IAEZ,2BAA2B;IAE3B,oBAAoB;IACpB,2BAA2B,EAAE,MAAM,EAAE;IACrC,0BAA0B,EAAE,MAAM,EAAE;IACpC,YAAY;IAEZ,iBAAiB;IACjB,qBAAqB,EAAE,MAAM,EAAE;IAC/B,YAAY;IAEZ,YAAY;CACf,CAAC;AAEO,4CAAgB"}
|
package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.d.ts
CHANGED
|
@@ -14,11 +14,16 @@ export declare class GenerateFilesTask extends AbstractEmptyTask {
|
|
|
14
14
|
*
|
|
15
15
|
* @param message The message to get rid of duplicate vehicle descriptors from
|
|
16
16
|
* @param tripData The trip data to get start timestamps from
|
|
17
|
+
* @param options Options for the duplicate removal process
|
|
18
|
+
* @param options.removeVehicleOnly Whether to only remove the duplicate vehicle descriptor from the message entity, instead
|
|
19
|
+
* of removing the whole entity. Defaults to `false`. Note that if an entity with a duplicate vehicle descriptor does not
|
|
20
|
+
* contain any other valuable data, it will be removed regardless of this option.
|
|
17
21
|
*/
|
|
18
22
|
private removeDuplicateVehicleDescriptors;
|
|
19
23
|
/**
|
|
20
|
-
* Update a given `EntityWithTripStartByVehicleId` Map with given values if the entity has a lower trip start date/time
|
|
21
|
-
* not canceled
|
|
24
|
+
* Update a given `EntityWithTripStartByVehicleId` Map with given values if the new entity has a lower trip start date/time
|
|
25
|
+
* and is not canceled. The entity that does not end up in the map (either the new entity if it does not meet the conditions
|
|
26
|
+
* for the update or the original entity if the new entity does) is returned.
|
|
22
27
|
*
|
|
23
28
|
* @param entityWithTripStartByVehicleId The Map to update
|
|
24
29
|
* @param vehicleId The vehicle ID to use as a key
|
package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js
CHANGED
|
@@ -8,6 +8,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
12
|
+
var t = {};
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
14
|
+
t[p] = s[p];
|
|
15
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
16
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
17
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18
|
+
t[p[i]] = s[p[i]];
|
|
19
|
+
}
|
|
20
|
+
return t;
|
|
21
|
+
};
|
|
11
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
23
|
exports.GenerateFilesTask = void 0;
|
|
13
24
|
const RouteTypeEnums_1 = require("../../../../../helpers/RouteTypeEnums");
|
|
@@ -93,6 +104,7 @@ class GenerateFilesTask extends workers_1.AbstractEmptyTask {
|
|
|
93
104
|
pidFeedMessage.entity.push(feedMessageEntity);
|
|
94
105
|
}
|
|
95
106
|
this.removeDuplicateVehicleDescriptors(positionsMessage, tripData);
|
|
107
|
+
this.removeDuplicateVehicleDescriptors(pidFeedMessage, tripData, { shouldRemoveVehicleOnly: true });
|
|
96
108
|
this.validateAndSaveBuffer("trip_updates", updatesMessage);
|
|
97
109
|
this.validateAndSaveBuffer("vehicle_positions", positionsMessage);
|
|
98
110
|
this.validateAndSaveBuffer("pid_feed", pidFeedMessage);
|
|
@@ -104,12 +116,17 @@ class GenerateFilesTask extends workers_1.AbstractEmptyTask {
|
|
|
104
116
|
*
|
|
105
117
|
* @param message The message to get rid of duplicate vehicle descriptors from
|
|
106
118
|
* @param tripData The trip data to get start timestamps from
|
|
119
|
+
* @param options Options for the duplicate removal process
|
|
120
|
+
* @param options.removeVehicleOnly Whether to only remove the duplicate vehicle descriptor from the message entity, instead
|
|
121
|
+
* of removing the whole entity. Defaults to `false`. Note that if an entity with a duplicate vehicle descriptor does not
|
|
122
|
+
* contain any other valuable data, it will be removed regardless of this option.
|
|
107
123
|
*/
|
|
108
|
-
removeDuplicateVehicleDescriptors(message, tripData) {
|
|
124
|
+
removeDuplicateVehicleDescriptors(message, tripData, options = { shouldRemoveVehicleOnly: false }) {
|
|
109
125
|
var _a, _b, _c;
|
|
110
126
|
if (!message.entity)
|
|
111
127
|
return;
|
|
112
128
|
const entitiesWithoutVehicleId = [];
|
|
129
|
+
const entitiesWithoutTheirDuplicateVehicle = [];
|
|
113
130
|
const entityWithTripStartByVehicleId = new Map();
|
|
114
131
|
for (let i = 0; i < message.entity.length; i++) {
|
|
115
132
|
const entity = message.entity[i];
|
|
@@ -122,16 +139,23 @@ class GenerateFilesTask extends workers_1.AbstractEmptyTask {
|
|
|
122
139
|
entityWithTripStartByVehicleId.set(vehicleId, { entity, entityTripStart });
|
|
123
140
|
}
|
|
124
141
|
else {
|
|
125
|
-
this.conditionallyUpdateEntityByVehicleId(entityWithTripStartByVehicleId, vehicleId, entity, entityTripStart);
|
|
142
|
+
const unusedEntity = this.conditionallyUpdateEntityByVehicleId(entityWithTripStartByVehicleId, vehicleId, entity, entityTripStart);
|
|
143
|
+
if (options.shouldRemoveVehicleOnly) {
|
|
144
|
+
const { vehicle = null } = unusedEntity, entityWithoutVehicle = __rest(unusedEntity, ["vehicle"]);
|
|
145
|
+
if (Object.keys(entityWithoutVehicle).find((key) => key !== "id")) {
|
|
146
|
+
entitiesWithoutTheirDuplicateVehicle.push(entityWithoutVehicle);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
126
149
|
}
|
|
127
150
|
}
|
|
128
|
-
message.entity = entitiesWithoutVehicleId;
|
|
151
|
+
message.entity = entitiesWithoutVehicleId.concat(entitiesWithoutTheirDuplicateVehicle);
|
|
129
152
|
for (const { entity } of entityWithTripStartByVehicleId.values())
|
|
130
153
|
message.entity.push(entity);
|
|
131
154
|
}
|
|
132
155
|
/**
|
|
133
|
-
* Update a given `EntityWithTripStartByVehicleId` Map with given values if the entity has a lower trip start date/time
|
|
134
|
-
* not canceled
|
|
156
|
+
* Update a given `EntityWithTripStartByVehicleId` Map with given values if the new entity has a lower trip start date/time
|
|
157
|
+
* and is not canceled. The entity that does not end up in the map (either the new entity if it does not meet the conditions
|
|
158
|
+
* for the update or the original entity if the new entity does) is returned.
|
|
135
159
|
*
|
|
136
160
|
* @param entityWithTripStartByVehicleId The Map to update
|
|
137
161
|
* @param vehicleId The vehicle ID to use as a key
|
|
@@ -145,7 +169,9 @@ class GenerateFilesTask extends workers_1.AbstractEmptyTask {
|
|
|
145
169
|
if (entityTripScheduleRelationship !== ovapi_gtfs_realtime_bindings_1.transit_realtime.TripDescriptor.ScheduleRelationship.CANCELED &&
|
|
146
170
|
entityTripStart < mapItem.entityTripStart) {
|
|
147
171
|
entityWithTripStartByVehicleId.set(vehicleId, { entity, entityTripStart });
|
|
172
|
+
return mapItem.entity;
|
|
148
173
|
}
|
|
174
|
+
return entity;
|
|
149
175
|
}
|
|
150
176
|
generateStopTimeUpdate(stopTimeEvents, routeType) {
|
|
151
177
|
const stopTimeUpdates = [];
|
package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenerateFilesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GenerateFilesTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.ts"],"names":[],"mappings":"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"}
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.d.ts
CHANGED
|
@@ -4,5 +4,8 @@ export declare enum MetroRouteName {
|
|
|
4
4
|
LINE_C = "C"
|
|
5
5
|
}
|
|
6
6
|
export declare class MetroRouteHelper {
|
|
7
|
+
private static tripToRouteMetroMap;
|
|
7
8
|
static getRouteId(routeName: MetroRouteName | string): string | undefined;
|
|
9
|
+
static getTripRouteMap(): Record<string, string>;
|
|
10
|
+
static getRouteName(tripId: string): string;
|
|
8
11
|
}
|
|
@@ -16,6 +16,18 @@ class MetroRouteHelper {
|
|
|
16
16
|
static getRouteId(routeName) {
|
|
17
17
|
return metroRouteId[routeName];
|
|
18
18
|
}
|
|
19
|
+
static getTripRouteMap() {
|
|
20
|
+
if (!this.tripToRouteMetroMap) {
|
|
21
|
+
this.tripToRouteMetroMap = {};
|
|
22
|
+
for (const routeName of Object.values(MetroRouteName)) {
|
|
23
|
+
this.tripToRouteMetroMap[`${MetroRouteHelper.getRouteId(routeName)}`] = routeName.toString();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return this.tripToRouteMetroMap;
|
|
27
|
+
}
|
|
28
|
+
static getRouteName(tripId) {
|
|
29
|
+
return this.getTripRouteMap()[tripId.substring(0, 3)];
|
|
30
|
+
}
|
|
19
31
|
}
|
|
20
32
|
exports.MetroRouteHelper = MetroRouteHelper;
|
|
21
33
|
//# sourceMappingURL=MetroRouteHelper.js.map
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetroRouteHelper.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,8BAAY,CAAA;IACZ,8BAAY,CAAA;IACZ,8BAAY,CAAA;AAChB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAED,MAAM,YAAY,GAAwD;IACtE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK;IAC9B,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK;IAC9B,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK;CACjC,CAAC;AAEF,MAAa,gBAAgB;
|
|
1
|
+
{"version":3,"file":"MetroRouteHelper.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,8BAAY,CAAA;IACZ,8BAAY,CAAA;IACZ,8BAAY,CAAA;AAChB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAED,MAAM,YAAY,GAAwD;IACtE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK;IAC9B,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK;IAC9B,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK;CACjC,CAAC;AAEF,MAAa,gBAAgB;IAGlB,MAAM,CAAC,UAAU,CAAC,SAAkC;QACvD,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC3B,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE;gBACnD,IAAI,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;aAChG;SACJ;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,MAAc;QACrC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;CACJ;AArBD,4CAqBC"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { IRegionalBusRunsMessagesModel } from "../../../../../../schema-definitions/vehicle-positions/models/interfaces/IRegionalBusRunsMessagesModel";
|
|
2
|
-
import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
|
|
3
2
|
import { ILogger } from "@golemio/core/dist/helpers/logger";
|
|
4
3
|
import { IRegionalBusMessageFilter } from "./interfaces/IRegionalBusMessageFilter";
|
|
5
4
|
export declare class RegionalBusMessageFilter implements IRegionalBusMessageFilter {
|
|
6
|
-
private config;
|
|
7
5
|
private logger;
|
|
8
|
-
constructor(
|
|
6
|
+
constructor(logger: ILogger);
|
|
9
7
|
/**
|
|
10
8
|
* Get messages that are valid for processing
|
|
11
9
|
*/
|
|
12
10
|
getFilteredMessages(messages: IRegionalBusRunsMessagesModel[]): IRegionalBusRunsMessagesModel[];
|
|
13
|
-
private get regNumberWhitelist();
|
|
14
11
|
}
|
|
@@ -16,8 +16,7 @@ exports.RegionalBusMessageFilter = void 0;
|
|
|
16
16
|
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
17
17
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
18
18
|
let RegionalBusMessageFilter = exports.RegionalBusMessageFilter = class RegionalBusMessageFilter {
|
|
19
|
-
constructor(
|
|
20
|
-
this.config = config;
|
|
19
|
+
constructor(logger) {
|
|
21
20
|
this.logger = logger;
|
|
22
21
|
}
|
|
23
22
|
/**
|
|
@@ -26,13 +25,8 @@ let RegionalBusMessageFilter = exports.RegionalBusMessageFilter = class Regional
|
|
|
26
25
|
getFilteredMessages(messages) {
|
|
27
26
|
let filteredMessages = [];
|
|
28
27
|
for (const message of messages) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
this.logger.verbose(
|
|
32
|
-
// eslint-disable-next-line max-len
|
|
33
|
-
`getFilteredMessages: message with registration_number=${message.registration_number} is not in whitelist, skipping`);
|
|
34
|
-
continue;
|
|
35
|
-
}
|
|
28
|
+
const isValidMessage = message.cis_line_id && message.cis_trip_number && message.registration_number && message.events !== "";
|
|
29
|
+
if (isValidMessage) {
|
|
36
30
|
filteredMessages.push(message);
|
|
37
31
|
}
|
|
38
32
|
}
|
|
@@ -41,20 +35,10 @@ let RegionalBusMessageFilter = exports.RegionalBusMessageFilter = class Regional
|
|
|
41
35
|
}
|
|
42
36
|
return filteredMessages;
|
|
43
37
|
}
|
|
44
|
-
get regNumberWhitelist() {
|
|
45
|
-
const valuePath = "old.datasources.pid.vehicle-positions.regNumberWhitelist.regionalBus";
|
|
46
|
-
const whitelistDict = this.config.getValue(valuePath, {});
|
|
47
|
-
const whitelist = Object.values(whitelistDict);
|
|
48
|
-
if (whitelist[0] !== "*") {
|
|
49
|
-
return whitelist;
|
|
50
|
-
}
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
38
|
};
|
|
54
39
|
exports.RegionalBusMessageFilter = RegionalBusMessageFilter = __decorate([
|
|
55
40
|
(0, tsyringe_1.injectable)(),
|
|
56
|
-
__param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.
|
|
57
|
-
|
|
58
|
-
__metadata("design:paramtypes", [Object, Object])
|
|
41
|
+
__param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
|
|
42
|
+
__metadata("design:paramtypes", [Object])
|
|
59
43
|
], RegionalBusMessageFilter);
|
|
60
44
|
//# sourceMappingURL=RegionalBusMessageFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegionalBusMessageFilter.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"RegionalBusMessageFilter.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/regional-bus/RegionalBusMessageFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wEAAqE;AAErE,iEAAwE;AAIjE,IAAM,wBAAwB,sCAA9B,MAAM,wBAAwB;IACjC,YAA8C,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEjE;;OAEG;IACI,mBAAmB,CAAC,QAAyC;QAChE,IAAI,gBAAgB,GAAoC,EAAE,CAAC;QAC3D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,MAAM,cAAc,GAChB,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC;YAE3G,IAAI,cAAc,EAAE;gBAChB,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAClC;SACJ;QAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC;SAChF;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC;CACJ,CAAA;mCAvBY,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GAD5B,wBAAwB,CAuBpC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MetroRailtrackGPSRepository } from "../../../../../ropid-gtfs/workers/railtrack/tasks/data-access/MetroRailtrackGPSRepository";
|
|
2
|
+
import { IMetroRailtrackGPSModel } from "../../../../../../schema-definitions/ropid-gtfs/models/railtrack/interfaces/IMetroRailtrackGPSModel";
|
|
3
|
+
export declare class CachedMetroRailTrackLookup {
|
|
4
|
+
private metroRailtrackGPSRepository;
|
|
5
|
+
private cachedLookup;
|
|
6
|
+
constructor(metroRailtrackGPSRepository: MetroRailtrackGPSRepository);
|
|
7
|
+
getAllByRouteName(route_name: string): Promise<IMetroRailtrackGPSModel[]>;
|
|
8
|
+
private groupByRouteName;
|
|
9
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.CachedMetroRailTrackLookup = void 0;
|
|
25
|
+
const MetroRailtrackGPSRepository_1 = require("../../../../../ropid-gtfs/workers/railtrack/tasks/data-access/MetroRailtrackGPSRepository");
|
|
26
|
+
const VPContainerToken_1 = require("../../../../ioc/VPContainerToken");
|
|
27
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
28
|
+
/*
|
|
29
|
+
* In case of update of the data for metro railtrack. It is necessary to restart the service to reload cache.
|
|
30
|
+
*/
|
|
31
|
+
let CachedMetroRailTrackLookup = exports.CachedMetroRailTrackLookup = class CachedMetroRailTrackLookup {
|
|
32
|
+
constructor(metroRailtrackGPSRepository) {
|
|
33
|
+
this.metroRailtrackGPSRepository = metroRailtrackGPSRepository;
|
|
34
|
+
}
|
|
35
|
+
getAllByRouteName(route_name) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
if (!this.cachedLookup) {
|
|
38
|
+
const result = yield this.metroRailtrackGPSRepository["sequelizeModel"].findAll({
|
|
39
|
+
raw: true,
|
|
40
|
+
});
|
|
41
|
+
this.cachedLookup = this.groupByRouteName(result);
|
|
42
|
+
}
|
|
43
|
+
return this.cachedLookup[route_name];
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
groupByRouteName(result) {
|
|
47
|
+
return result.reduce((r, a) => {
|
|
48
|
+
r[a.route_name] = r[a.route_name] || [];
|
|
49
|
+
r[a.route_name].push(a);
|
|
50
|
+
return r;
|
|
51
|
+
}, Object.create(null));
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
exports.CachedMetroRailTrackLookup = CachedMetroRailTrackLookup = __decorate([
|
|
55
|
+
(0, tsyringe_1.injectable)(),
|
|
56
|
+
__param(0, (0, tsyringe_1.inject)(VPContainerToken_1.VPContainerToken.MetroRailtrackGPSRepository)),
|
|
57
|
+
__metadata("design:paramtypes", [MetroRailtrackGPSRepository_1.MetroRailtrackGPSRepository])
|
|
58
|
+
], CachedMetroRailTrackLookup);
|
|
59
|
+
//# sourceMappingURL=CachedMetroRailtrackLookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CachedMetroRailtrackLookup.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/metro/CachedMetroRailtrackLookup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,2IAA6H;AAC7H,uEAA8E;AAG9E,iEAAwE;AAExE;;GAEG;AAGI,IAAM,0BAA0B,wCAAhC,MAAM,0BAA0B;IAGnC,YACkE,2BAAwD;QAAxD,gCAA2B,GAA3B,2BAA2B,CAA6B;IACvH,CAAC;IAES,iBAAiB,CAAC,UAAkB;;YAC7C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAyB;oBACpG,GAAG,EAAE,IAAI;iBACZ,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;aACrD;YAED,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;KAAA;IAEO,gBAAgB,CAAC,MAAgC;QACrD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,CAAC,CAAC;QACb,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;CACJ,CAAA;qCAzBY,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAKJ,WAAA,IAAA,iBAAM,EAAC,mCAAgB,CAAC,2BAA2B,CAAC,CAAA;qCAAsC,yDAA2B;GAJjH,0BAA0B,CAyBtC"}
|
|
@@ -2,6 +2,9 @@ import { RopidGTFSTripsModel } from "../../../../ropid-gtfs/RopidGTFSTripsModel"
|
|
|
2
2
|
import { IComputationTrip } from "../interfaces/VPInterfaces";
|
|
3
3
|
export declare class DelayComputationManager {
|
|
4
4
|
private readonly gtfsTripsRepository;
|
|
5
|
+
private METRO_TRIP_PREFIX_REGEX;
|
|
6
|
+
private stepBetweenPoints;
|
|
7
|
+
private stepBetweenPointsforMetro;
|
|
5
8
|
constructor(gtfsTripsRepository: RopidGTFSTripsModel);
|
|
6
9
|
/**
|
|
7
10
|
* Return shape anchor points along trip track shape with stop times parameters
|
|
@@ -33,13 +33,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
35
|
exports.DelayComputationManager = void 0;
|
|
36
|
+
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
36
37
|
const config_1 = require("@golemio/core/dist/integration-engine/config");
|
|
37
38
|
const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
|
|
39
|
+
const ioc_1 = require("@golemio/core/dist/integration-engine/ioc");
|
|
38
40
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
39
41
|
const turf = __importStar(require("@turf/turf"));
|
|
40
42
|
class DelayComputationManager {
|
|
41
43
|
constructor(gtfsTripsRepository) {
|
|
42
44
|
this.gtfsTripsRepository = gtfsTripsRepository;
|
|
45
|
+
this.METRO_TRIP_PREFIX_REGEX = /^(991|992|993)/;
|
|
43
46
|
/**
|
|
44
47
|
* Return shape anchor points along trip track shape with stop times parameters
|
|
45
48
|
*
|
|
@@ -59,7 +62,8 @@ class DelayComputationManager {
|
|
|
59
62
|
else if (!(stop_times === null || stop_times === void 0 ? void 0 : stop_times.length)) {
|
|
60
63
|
throw new golemio_errors_1.GeneralError(`getComputationObject: GTFS trip ${tripId} has no stop_times`, this.constructor.name);
|
|
61
64
|
}
|
|
62
|
-
const
|
|
65
|
+
const isMetro = this.METRO_TRIP_PREFIX_REGEX.test(tripId);
|
|
66
|
+
const shapesGeometryAnchorPoints = this.getShapesGeometryAnchorPoints(shape_id, shapes, stop_times, isMetro);
|
|
63
67
|
// MAKING COPY
|
|
64
68
|
const shapePoints = [];
|
|
65
69
|
// const to determine shape points of stops (in meters)
|
|
@@ -147,7 +151,7 @@ class DelayComputationManager {
|
|
|
147
151
|
* @param {IStopTime[]} stops
|
|
148
152
|
* @returns {IShapeGeometryAnchorPoint[]} - Result array of geometry points along trip track shape
|
|
149
153
|
*/
|
|
150
|
-
this.getShapesGeometryAnchorPoints = (shapeId, shapes, stops) => {
|
|
154
|
+
this.getShapesGeometryAnchorPoints = (shapeId, shapes, stops, isMetro = false) => {
|
|
151
155
|
try {
|
|
152
156
|
let segmentShapes = [];
|
|
153
157
|
// Splits shapes array to multiple arrays "delimited" by stops
|
|
@@ -171,7 +175,10 @@ class DelayComputationManager {
|
|
|
171
175
|
let segmentArr = [];
|
|
172
176
|
// concat arrays of stop divided segments with distributed shape points
|
|
173
177
|
for (const segment of segmentShapes) {
|
|
174
|
-
segmentArr = [
|
|
178
|
+
segmentArr = [
|
|
179
|
+
...segmentArr,
|
|
180
|
+
...this.divideSegmentLine(segment, isMetro ? this.stepBetweenPointsforMetro : this.stepBetweenPoints),
|
|
181
|
+
];
|
|
175
182
|
}
|
|
176
183
|
// Make initial shapesGeometryAnchorPoints
|
|
177
184
|
let stopCounter = 0;
|
|
@@ -271,6 +278,9 @@ class DelayComputationManager {
|
|
|
271
278
|
};
|
|
272
279
|
});
|
|
273
280
|
};
|
|
281
|
+
const simpleConfig = ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.SimpleConfig);
|
|
282
|
+
this.stepBetweenPoints = config_1.config.vehiclePositions.stepBetweenPoints;
|
|
283
|
+
this.stepBetweenPointsforMetro = Number(simpleConfig.getValue("module.pid.vehicle-positions.shapes.metro.stepBetweenPointsForMetro", "0.025"));
|
|
274
284
|
}
|
|
275
285
|
}
|
|
276
286
|
exports.DelayComputationManager = DelayComputationManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DelayComputationManager.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"DelayComputationManager.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,34 +85,17 @@ class PositionsManager {
|
|
|
85
85
|
return firstStopDepartureTime < ONE_DAY_IN_SECONDS || dstOffsetInMillis < 0 ? dstOffsetInMillis : 0;
|
|
86
86
|
}
|
|
87
87
|
static getStateAndStopSequences(gtfsRouteType, tripStopTimes, thisClosestPoint, positionProperties, context) {
|
|
88
|
-
var _b
|
|
88
|
+
var _b;
|
|
89
89
|
let statePosition = thisClosestPoint.this_stop_sequence ? const_1.StatePositionEnum.AT_STOP : const_1.StatePositionEnum.ON_TRACK;
|
|
90
90
|
let thisStopSequence = thisClosestPoint.this_stop_sequence;
|
|
91
91
|
let lastStopSequence = thisClosestPoint.last_stop_sequence;
|
|
92
92
|
let nextStopSequence = thisClosestPoint.next_stop_sequence;
|
|
93
|
-
if (gtfsRouteType === RouteTypeEnums_1.GTFSRouteTypeEnum.METRO) {
|
|
94
|
-
thisStopSequence = null;
|
|
95
|
-
if (positionProperties.this_stop_id) {
|
|
96
|
-
const thisStopTime = tripStopTimes.find((stopTime) => stopTime.stop_id === positionProperties.this_stop_id);
|
|
97
|
-
if (thisStopTime) {
|
|
98
|
-
statePosition = const_1.StatePositionEnum.AT_STOP;
|
|
99
|
-
thisStopSequence = thisStopTime.stop_sequence;
|
|
100
|
-
lastStopSequence = thisStopSequence;
|
|
101
|
-
nextStopSequence = Math.min(tripStopTimes.length, thisStopSequence + 1);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
if (thisStopSequence === null) {
|
|
105
|
-
statePosition = const_1.StatePositionEnum.ON_TRACK;
|
|
106
|
-
if (context === null || context === void 0 ? void 0 : context.lastPositionTracking) {
|
|
107
|
-
lastStopSequence = (_b = context.lastPositionTracking.properties.last_stop_sequence) !== null && _b !== void 0 ? _b : lastStopSequence;
|
|
108
|
-
nextStopSequence = (_c = context.lastPositionTracking.properties.next_stop_sequence) !== null && _c !== void 0 ? _c : nextStopSequence;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
93
|
// if current positions's TCP event is 'T' and previous position is tracked
|
|
113
|
-
|
|
94
|
+
if (gtfsRouteType !== RouteTypeEnums_1.GTFSRouteTypeEnum.METRO &&
|
|
95
|
+
positionProperties.tcp_event === const_1.TCPEventEnum.TIME &&
|
|
96
|
+
(context === null || context === void 0 ? void 0 : context.lastPositionTracking)) {
|
|
114
97
|
const previousPositionTcpEvent = context.lastPositionTracking.properties.tcp_event;
|
|
115
|
-
const previousLastStopSequence = (
|
|
98
|
+
const previousLastStopSequence = (_b = context.lastPositionTracking.properties.last_stop_sequence) !== null && _b !== void 0 ? _b : 0;
|
|
116
99
|
// if previous position was 'P' and current last stop sequence is lower than the previous last stop sequence
|
|
117
100
|
// or if previous position was 'O', current position is at stop
|
|
118
101
|
// and current last stop sequence is lower than the previous last stop sequence
|