public static List<double> RoadType(Trip trip, List<Fact> facts, DBController dbc)
        {
            SortedDictionary<Global.Enums.RoadType, double> metersDistribution = new SortedDictionary<Global.Enums.RoadType, double>();
            List<Global.Enums.RoadType> roadTypes = dbc.GetRoadTypesByTripId(trip.TripId);

            //Populate dictionary with all policy-required roadtypes
            foreach (Global.Enums.RoadType roadType in DefaultPolicy.RoadTypes) {
                metersDistribution.Add(roadType, 0);
            }

            //Calculate meters driven on each roadtype
            for (int i = 1; i < facts.Count; i++) {
                if (DefaultPolicy.RoadTypes.Contains(roadTypes[i])) {
                    metersDistribution[roadTypes[i]] += facts[i].Spatial.DistanceToLag;
                }
            }

            List<double> resultList = metersDistribution.Values.ToList();

            //Calculate the distribution in percentages of whole trip
            for (int i = 0; i < resultList.Count; i++) {
                resultList[i] = (resultList[i] / trip.MetersDriven) * 100;
            }

            return resultList;
        }