В примере приложения есть пример. Вы еще посмотрели на это? Это не идеально, и вы хотите дополнить его с GPS заголовок
https://github.com/osmdroid/osmdroid/blob/master/OpenStreetMapViewer/src/main/java/org/osmdroid/samplefragments/SampleHeadingCompassUp.java
`` `` `
//lock the device in current screen orientation
int orientation = getActivity().getRequestedOrientation();
int rotation = ((WindowManager) getActivity().getSystemService(
Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation();
switch (rotation) {
case Surface.ROTATION_0:
orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
this.deviceOrientation=0;
break;
case Surface.ROTATION_90:
this.deviceOrientation=90;
orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
break;
case Surface.ROTATION_180:
this.deviceOrientation=180;
orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;
break;
default:
this.deviceOrientation=270;
orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
break;
}
getActivity().setRequestedOrientation(orientation);
LocationManager lm = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
try {
//on API15 AVDs,network provider fails. no idea why
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, (LocationListener) this);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, (LocationListener) this);
} catch (Exception ex) {
}
compass = new InternalCompassOrientationProvider(getActivity());
compass.startOrientationProvider(this);
mMapView.getController().zoomTo(18);
` `` ``
настроить поворот, принимая во внимание устройство вращения
`` ``
@Override
public void onOrientationChanged(float orientation, IOrientationProvider source) {
//System.out.println("compass " + orientation);
//System.out.println("deviceOrientation " + deviceOrientation);
//this part adjusts the desired map rotation based on device orientation and compass heading
float t=(360-orientation-this.deviceOrientation);
if (t < 0)
t+=360;
if (t > 360)
t-=360;
//System.out.println("screen heading to " + t);
mMapView.setMapOrientation(t);
}
`` ``
Это не то, что я хотел ... –
Хорошо, хорошо, он делает то, что вы описали. обновите описание или предоставите больше информации о том, что вы хотите. Возможно, это то, что вы хотите ... https://github.com/osmdroid/osmdroid/blob/44408833ca2c16c5cf35b8681e9fa02ef3099263/osmdroid-android/src/main/java/org/osmdroid/views/overlay/gestures/RotationGestureOverlay.java – spy
иногда это все о ключевом слове. Я получил ответ. установив ориентацию карты, я сделал это. Кстати, спасибо за вашу помощь. –