/**
  * Display the specified resource.
  *
  * @param  $request
  * @return Response
  */
 public function addPathToPath(Request $request)
 {
     $first = $request['first_path'];
     $second = $request['second_path'];
     return GeoHelper::addPathToPath($first, $second);
 }
 public static function updateIterinary($token)
 {
     $iterinary = self::getUserCurrentIterinary($token);
     $distance = 0;
     $duration = 0;
     $price = 0;
     $activities = $iterinary->activities;
     foreach ($activities as $activity) {
         $start_time = Carbon::parse($activity->start_time);
         $end_time = Carbon::parse($activity->end_time);
         $distance += GeolocationHelper::resolveDistance($activity);
         $duration += $end_time->diffInMinutes($start_time);
         $price += $activity->typable->price;
     }
     $iterinary->distance = $distance;
     $iterinary->duration = $duration;
     $iterinary->price = $price;
     $iterinary->save();
 }
 /**
  * @param $origin
  * @param $destination
  * @return string
  */
 public static function getFlightPath($origin, $destination)
 {
     $array = [];
     // FORMAT
     //        $array = [
     //            0 => [lat,lng],
     //            1 => [lat,lng]
     //        ];
     $array[0] = Geohelper::parseLongLat($origin);
     $array[1] = Geohelper::parseLongLat($destination);
     $path = Geohelper::encode($array);
     return $path;
 }
 /**
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function getPath()
 {
     $iterinary_id = Input::get('iterinary_id');
     $iterinary = Iterinary::find($iterinary_id);
     $route = $iterinary->route;
     if (!$route) {
         return response()->json(['err' => 'route not found'], 404);
     }
     //        dd($iterinary)
     $segments = $route->segments()->get();
     if ($segments->isEmpty()) {
         return response()->json(['err' => 'no segments', 'center_lat' => ''], 400);
     }
     $activities = $iterinary->activities()->with('typable')->get();
     $points = [];
     foreach ($segments as $segment) {
         $points[] = GeolocationHelper::decode($segment->path);
     }
     $center[] = $points[0][0];
     $center[] += $points[0][1];
     $points = GeolocationHelper::flatten($points);
     $path = GeolocationHelper::encode($points);
     $data = ['center' => $center, 'path' => $path, 'activities' => $activities];
     return response()->json($data, 200);
 }