私のアンドロイドアプリケーションは、世界の特定の場所の方向を示しているため、コンパス度を取得する必要があります。
これは私が度を計算するために使用してきたコードです:正確なコンパスを作る方法android
public void getDirection() {
mySensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
List<Sensor> mySensors = mySensorManager.getSensorList(Sensor.TYPE_ORIENTATION);
if(mySensors.size() > 0){
mySensorManager.registerListener(mySensorEventListener, mySensors.get(0), SensorManager.SENSOR_DELAY_UI);
}
else{
TextView alert = (TextView)findViewById(R.id.instruct);
alert.setText(getString(R.string.direction_not_found));
myCompassView.setVisibility(myCompassView.INVISIBLE);
}
}
private SensorEventListener mySensorEventListener = new SensorEventListener(){
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
compassBearing = (float)event.values[0];
float bearing;
bearing = compassBearing - templeBearing;
if (bearing < 0)
bearing = 360 + bearing;
myCompassView.updateDirection(bearing);
}
};
この方法は、通常動作しますが、時にはそれだけで間違って北を取得し、私はより正確な位置を取得するために何をすべきかを持っているのですか?
これは、新しいhttp://area51.stackexchange.com/proposals/102228/virtual-and-augmented-reality StackExchangeの提案に追加するとよい質問です。 – SashaZd