Lire et agir
Voies et distances
Convertir une position sur une voie en mètres avec TrackMetric.
Fraction et sens
Position identifie une voie, une fraction entre 0 et 1 sur cette voie et un sens. Le mètre zéro est celui de la représentation de la voie, pas la tête du train. Pour la construction, le sens vaut -1 ou 1 et la fraction doit rester strictement entre les extrémités.
Exemple pour une voie longue d’au moins 200 m
import fr.nimby.sdk.TrackMetric
fun distanceSurVoie(metric: TrackMetric): Double {
val depart = metric.fraction(100.0) // 100 m depuis l’origine de la voie
val arrivee = metric.fraction(200.0)
return metric.distanceM(depart, arrivee) // 100 m
}Une longueur doit être observée
kotlin
fun longueur(snapshot: fr.nimby.sdk.Observation, trackId: Long): Double? =
snapshot.trackMetrics?.firstOrNull { it.trackId == trackId }?.lengthMtrackMetrics peut être null si la DLL est ancienne ou le profil non pris en charge. Une ligne manquante reste inconnue. Une longueur ne prouve ni la continuité du trajet, ni l’absence d’aiguille, ni une autorisation de construire.