Ich entwickle Kompass-Anwendung, wo ich möchte, dass der Kompass auf eine bestimmte Breitengrad-Position statt des üblichen Nordens zeigt. Ich habe einige questions zu meinem Problem gefunden, aber ich schaffe es nicht, dass sie für mich funktionieren. Hier ist mein Code:Android Kompass zeigt auf meinen Standort statt Norden
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private ImageView image;
private float currentDegree = 0f;
private SensorManager mSensorManager;
private TextView tvHeading;
private Location location = new Location("A");
private Location target = new Location("B");
private LocationManager locationManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image = (ImageView) findViewById(R.id.imageViewCompass);
tvHeading = (TextView) findViewById(R.id.tvHeading);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
location.setLatitude(54.903535);
location.setLongitude(23.979342);
target.setLatitude(54.904618);
target.setLongitude(23.978782);
}
@Override
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
SensorManager.SENSOR_DELAY_GAME);
}
@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this); // to stop the listener and save battery
}
@Override
public void onSensorChanged(SensorEvent event) {
float degree = Math.round(event.values[0]);
tvHeading.setText("Heading: " + Float.toString(degree) + " degrees");
RotateAnimation ra = new RotateAnimation(
currentDegree,
-degree,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF,
0.5f);
ra.setDuration(210);
ra.setFillAfter(true);
image.startAnimation(ra);
currentDegree = -degree;
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// not in use
}
}
derzeit zeigt mein Zeiger nur in Norden statt meiner Zielort harcoded.
Ich denke, das ist nicht genau Sie suchen aber versuchen Sie die akzeptierte Lösung, die Sie möglicherweise etwas Hilfe erhalten http://stackoverflow.com/questions/4308262/calculate-compass-bearing-heading-to-location-in-android. – Raghavendra