Skip to content

Commit 0a8d344

Browse files
committed
front: adapt getPointOnTrackCoordinates to return null if offset invalid
Signed-off-by: SharglutDev <[email protected]>
1 parent e163334 commit 0a8d344

File tree

4 files changed

+8
-4
lines changed

4 files changed

+8
-4
lines changed

front/src/applications/operationalStudies/views/Scenario/components/ManageTimetableItem/ManageTimetableItemMap/AddPathStepPopup.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ const AddPathStepPopup = ({
126126
tracks[part.track]?.geo,
127127
tracks[part.track]?.length,
128128
part.position
129-
),
129+
)!,
130130
}));
131131

132132
trackPartCoordinates.unshift({

front/src/modules/pathfinding/helpers/getPointOnPathCoordinates.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const getPointOnPathCoordinates = (
2424

2525
const track = tracks[trackOffset.track];
2626

27-
return getPointOnTrackCoordinates(track.geo, mToMm(track.length), trackOffset.offset);
27+
return getPointOnTrackCoordinates(track.geo, mToMm(track.length), trackOffset.offset)!;
2828
};
2929

3030
export default getPointOnPathCoordinates;

front/src/modules/pathfinding/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export const formatSuggestedOperationalPoints = (
3838
offsetOnTrack: op.part.position,
3939
track: op.part.track,
4040
positionOnPath: op.position,
41-
coordinates: getPointOnTrackCoordinates(geometry, pathLength, op.position),
41+
coordinates: getPointOnTrackCoordinates(geometry, pathLength, op.position)!,
4242
metadata: op?.metadata,
4343
}));
4444

front/src/utils/geometry.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,14 @@ export function getPointOnTrackCoordinates(
152152
geometry: GeoJsonLineString,
153153
trackLength: number, // in mm
154154
infraPositionOnTrack: number // in mm
155-
): Position {
155+
): Position | null {
156156
const pathLineString = lineString(geometry.coordinates);
157157
const geometryTrackLength = length(pathLineString, { units: 'millimeters' });
158158
const infraTrackLength = trackLength;
159+
160+
if (infraPositionOnTrack > trackLength) {
161+
return null;
162+
}
159163
// TODO TS2 : when adapting train update check that this computation works properly
160164
const geometryDistanceAlongTrack =
161165
infraPositionOnTrack * (geometryTrackLength / infraTrackLength);

0 commit comments

Comments
 (0)