/** * Подготовить маршруты * @param $legs * @param $summary * @return array */ protected static function prepareLegs($legs, $summary) { $routes = []; foreach ($legs as $route) { $routeModel = new self(); $routeModel->keyStreet = $summary; $routeModel->distance = $route->distance->value; $routeModel->timeSpan = $route->duration->value; $coordinates = new RouteCoordinates(); $coordinates->lat = $route->start_location->lat; $coordinates->lng = $route->start_location->lng; $routeModel->routeCoordinates[] = $coordinates; foreach ($route->steps as $step) { $navigation = new Navigation(); $navigation->distance = $step->distance->value; $navigation->comment = $step->html_instructions; $navigation->setType(isset($step->maneuver) ? $step->maneuver : ""); $routeModel->navigation[] = $navigation; $coordinates = new RouteCoordinates(); $coordinates->lat = $step->end_location->lat; $coordinates->lng = $step->end_location->lng; $routeModel->routeCoordinates[] = $coordinates; } $routeModel->prepareAccident($route->start_location->lat, $route->start_location->lng); $routes[] = $routeModel; } return $routes; }