+float TrainRouteMetric::get_distance_from(const Track &track) const
+{
+ map<Key, Data>::const_iterator i = tracks.lower_bound(Key(&track, 0));
+ map<Key, Data>::const_iterator j = tracks.upper_bound(Key(&track, 255));
+
+ float result = -1;
+ for(; i!=j; ++i)
+ {
+ float d = i->second.distance+i->second.goal->base_distance;
+ if(result<0 || d<result)
+ result = d;
+ }
+
+ return result;
+}
+