class TrackStats {

    TrackStats(@NonNull List<MLocation> trackData) {
        if (!trackData.isEmpty()) {
            // Detect exit, deploy, land
            final TrackLabels labels = TrackLabels.from(trackData);
            if (labels != null) {
                exit = trackData.get(labels.exit);
                deploy = trackData.get(labels.deploy);
                land = trackData.get(labels.land);
            }
            final LatLngBounds.Builder boundsBuilder = LatLngBounds.builder();
            for (MLocation loc : trackData) {
                altitude.expand(loc.altitude_gps);
                boundsBuilder.include(loc.latLng());
            }
            bounds = boundsBuilder.build();
        } else {
            bounds = null;
        }
    }

      TrackStats(@NonNull List<MLocation> trackData);

}