Пример #1
0
 /**
  * @param $latitudeFrom
  * @param $longitudeFrom
  * @param Place $place
  * @return int
  */
 public function calculateDistance($latitudeFrom, $longitudeFrom, Place $place)
 {
     $latitudeFrom = str_replace(",", ".", $latitudeFrom);
     $longitudeFrom = str_replace(",", ".", $longitudeFrom);
     $latFrom = deg2rad($latitudeFrom);
     $lonFrom = deg2rad($longitudeFrom);
     $latTo = deg2rad($place->getLatitude());
     $lonTo = deg2rad($place->getLongitude());
     $earthRadius = 6371;
     $latDelta = $latTo - $latFrom;
     $lonDelta = $lonTo - $lonFrom;
     $angle = 2 * asin(sqrt(pow(sin($latDelta / 2), 2) + cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2)));
     return $angle * $earthRadius;
 }
Пример #2
0
 /**
  * @param Request $request
  * @param Place $place
  * @Put("admin/places/{id}")
  * @return Response
  */
 public function putPlaceAction(Request $request, Place $place)
 {
     $em = $repo = $this->getDoctrine()->getManager();
     $now = new \DateTime('now');
     $postContent = $request->getContent();
     if (!empty($postContent)) {
         $postContent = json_decode($postContent);
         $place->setName($postContent->name)->setLatitude($postContent->latitude)->setLongitude($postContent->longitude)->setDescription($postContent->description)->setPicture($postContent->picture)->setUpdatedAt($now)->setType($postContent->type);
         $validator = $this->get('validator');
         $errors = $validator->validate($place);
         if (count($errors) > 0) {
             $view = $this->view($errors, 400)->setFormat('json');
         } else {
             $em->persist($place);
             $em->flush();
             $view = $this->view($place, 201)->setFormat('json');
         }
     } else {
         $view = $this->view('No data posted.', 400)->setFormat('json');
     }
     return $this->handleView($view);
 }