ứng dụng Android của tôi cho biết hướng của một địa điểm cụ thể trên thế giới và do đó cần có được độ la bàn.
Đây là mã tôi đã sử dụng để tính toán độ:Cách tạo la bàn chính xác trên 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);
}
};
Phương pháp này thường làm việc nhưng đôi khi nó sẽ chỉ phía bắc sai, tôi phải làm gì phải làm để có được một vị trí chính xác hơn?
Đây sẽ là một câu hỏi hay để thêm vào đề xuất mới http://area51.stackexchange.com/proposals/102228/virtual-and-augmented-reality StackExchange. – SashaZd