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); }
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()); } }
/** * Compensate the azimuth with the magnetic declination. * @param azimuth The azimuth in units of degrees with the range: 0 < range <= 360 * @return the azimuth compensated for magnetic declination. */ public float compenstateDeclination(float azimuth) { return (azimuth + geoMagField.getDeclination()) % 360; }
private static void trueNorth() { long time = System.currentTimeMillis(); GeomagneticField geo = new GeomagneticField((float) startLat, (float) startLon, altitude, time); decl = geo.getDeclination(); }
double dec = -gmf.getDeclination();
mDeclination = -gmf.getDeclination(); gmf = null;
double bearing = Double.parseDouble(chop.substring(0, 3)) + gmf.getDeclination(); Coordinate coordinate = Radial.findCoordinate(lon, lat, distance, bearing); StringPreference s = new StringPreference(Destination.GPS, "GPS", name, double bearing = Double.parseDouble(chop.substring(0, 3)) + gmf.getDeclination(); Coordinate coordinate = Radial.findCoordinate(lon, lat, distance, bearing); StringPreference s = new StringPreference(Destination.GPS, "GPS", name,