jParmar
0
Q:

magnetic declination android studio

  public void setLocation(Location location)
  {
    GeomagneticField geomagneticField = new GeomagneticField(
      (float) location.getLatitude(),
      (float) location.getLongitude(),
      (float) location.getAltitude(),
      System.currentTimeMillis());
    declination = (float) Math.toRadians(geomagneticField.getDeclination());
  }
}
0
private void updateSensorValues(SensorEvent event) {
  if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
    setAcclValues(event);
  } else if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
    setmagValues(event);
  }
  SensorManager.getRotationMatrix(rotation, null, grav, mag);
  SensorManager.getOrientation(rotation, orientation);
  double floatBearing = orientation[0];
  floatBearing = Math.toDegrees(floatBearing); 
  if (magField != null)
    floatBearing += magField.getDeclination();
  if (floatBearing < 0)
    floatBearing += 360;
  setBearing(floatBearing);
  setRotationInDegrees(floatBearing);
}
0

New to Communities?

Join the community