/**
  * {@inheritdoc}
  */
 public static function fromArray(array $values)
 {
     $message = new self();
     $values = array_merge(['time_to_fix' => null, 'satellites_prn' => [], 'azimuth' => [], 'elevation' => [], 'snr' => [], 'has_almanac' => [], 'has_ephemeris' => [], 'used_in_fix' => []], $values);
     $message->setTimeToFix($values['time_to_fix']);
     foreach ($values['satellites_prn'] as $item) {
         $message->addSatellitesPrn($item);
     }
     foreach ($values['azimuth'] as $item) {
         $message->addAzimuth($item);
     }
     foreach ($values['elevation'] as $item) {
         $message->addElevation($item);
     }
     foreach ($values['snr'] as $item) {
         $message->addSnr($item);
     }
     foreach ($values['has_almanac'] as $item) {
         $message->addHasAlmanac($item);
     }
     foreach ($values['has_ephemeris'] as $item) {
         $message->addHasEphemeris($item);
     }
     foreach ($values['used_in_fix'] as $item) {
         $message->addUsedInFix($item);
     }
     return $message;
 }