Ejemplo n.º 1
0
 /**
  * Create a position report for a flight and store it
  * in a class variable.
  *
  * @param  array  $data
  * @param  int    $flightId
  * @return void
  */
 protected function positionReport($data, $flightId)
 {
     $position = new Position();
     $position->flight_id = $flightId;
     $position->lat = $data['latitude'];
     $position->lon = $data['longitude'];
     $position->altitude = $data['altitude'];
     $position->speed = $data['groundspeed'];
     $position->heading = $data['heading'];
     $options = array('flags' => FILTER_FLAG_ALLOW_FRACTION);
     $lat = number_format(filter_var($data['latitude'], FILTER_SANITIZE_NUMBER_FLOAT, $options), 5);
     $lon = number_format(filter_var($data['longitude'], FILTER_SANITIZE_NUMBER_FLOAT, $options), 5);
     $elevation = $this->elevations[$lat . ',' . $lon];
     $position->ground_elevation = $elevation < 0 && $position->altitude > 0 ? 0 : $elevation;
     $position->update_id = $this->updateId;
     $this->positions[] = $position->toArray();
     unset($position, $data, $flightId);
 }