private List <SpeedModel> ExecuteAllRequest(IGrouping <int, LocationTime>[] groupedLocationTimeByRequest, bool interpolate) { List <SpeedModel> speedModelList = new List <SpeedModel>(); for (var i = 0; i < groupedLocationTimeByRequest.Length; i++) { var urlRequest = MadeUrlRequest(groupedLocationTimeByRequest[i], interpolate); var responseFromServer = ExecuteQuery(urlRequest); GoogleRoadResponse googleRoadResponse = JsonConvert.DeserializeObject <GoogleRoadResponse>(responseFromServer); //SpeedModel speedModel = new SpeedModel(googleRoadResponse.snappedPoints); var speedModel = SpeedModelExtensions.FromSnappedPointRoadArray(googleRoadResponse.snappedPoints); int previousOriginalElementIndex = 0; var groupOfTimeArray = groupedLocationTimeByRequest[i].ToArray(); speedModel.snappedPoints[0].time = groupOfTimeArray[0].time; for (var j = 1; j < speedModel.snappedPoints.Length; j++) { if (speedModel.snappedPoints[j].originalIndex != 0) { var indexDifferenceBetweenOriginalElements = j - previousOriginalElementIndex; var timeDifferenceBetweenOriginalElements = groupOfTimeArray[speedModel.snappedPoints[j].originalIndex].time - groupOfTimeArray[speedModel.snappedPoints[previousOriginalElementIndex].originalIndex].time; var timeDifferenceBetweenNeighborElements = timeDifferenceBetweenOriginalElements.TotalMilliseconds / indexDifferenceBetweenOriginalElements; var nextOriginalElementTime = groupOfTimeArray[speedModel.snappedPoints[j].originalIndex].time; int schetchik = 0; for (var k = j; k > previousOriginalElementIndex; k--) { speedModel.snappedPoints[k].time = nextOriginalElementTime.AddMilliseconds(-1 * schetchik * timeDifferenceBetweenNeighborElements); schetchik = schetchik + 1; } previousOriginalElementIndex = j; } } speedModelList.Add(speedModel); } return(speedModelList); }
private List <SpeedModel> ExecuteAllRequest(IGrouping <int, LocationTime>[] groupedLocationTimeByRequest) { List <SpeedModel> speedModelList = new List <SpeedModel>(); for (var i = 0; i < groupedLocationTimeByRequest.Length; i++) { var urlRequest = MadeUrlRequest(groupedLocationTimeByRequest[i]); var responseFromServer = ExecuteQuery(urlRequest); // var responseFromServerModelFrom = responseFromServer.Replace("lat", "latitude").Replace("lng", "longitude"); // GoogleElevationResponse googleElevationResponse = JsonConvert.DeserializeObject <GoogleElevationResponse>(responseFromServerModelFrom); //foreach (var googleResponsePointElevation in googleElevationResponse.results) //{ // var speedModel = new SpeedModel(googleResponsePointElevation); // speedModelList.Add(speedModel); //} var speedModel = SpeedModelExtensions.FromSnappedPointElevationArray(googleElevationResponse.results); speedModelList.Add(speedModel); } return(speedModelList); }