Google Street view + наклон устройства

Я пытаюсь добавить активность в качестве функции для приложения, которое я создаю там, API вернет длинный лат, и с этим длинным латом я загружу google street view. Который с движением устройства повернет угол поворота на 360 градусов. Я борюсь за часть движения устройства. Используя пальцы на экране, вы можете вращаться. Интересно, может ли кто-нибудь указать мне в правильном направлении, чтобы движение устройства повлияло на положение улицы?

Код, который у меня есть до сих пор:

import android.support.v4.app.FragmentActivity; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import com.google.android.gms.maps.OnStreetViewPanoramaReadyCallback; import com.google.android.gms.maps.StreetViewPanorama; import com.google.android.gms.maps.StreetViewPanoramaFragment; import com.google.android.gms.maps.StreetViewPanoramaOptions; import com.google.android.gms.maps.StreetViewPanoramaView; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.StreetViewPanoramaCamera; import com.google.android.gms.maps.model.StreetViewPanoramaLocation; public class MainActivity extends FragmentActivity implements OnStreetViewPanoramaReadyCallback { private static final String TAG = MainActivity.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); StreetViewPanoramaFragment streetViewPanoramaFragment = (StreetViewPanoramaFragment) getFragmentManager() .findFragmentById(R.id.streetviewpanorama); streetViewPanoramaFragment.getStreetViewPanoramaAsync(this); } @Override public void onStreetViewPanoramaReady(final StreetViewPanorama panorama) { final long duration = 1000; float tilt = 30; float bearing = 90; final StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder() .zoom(panorama.getPanoramaCamera().zoom) .bearing(bearing) .tilt(tilt) .build(); panorama.setPosition(new LatLng(52.208818, 0.090587)); panorama.setStreetNamesEnabled(false); panorama.setZoomGesturesEnabled(false); panorama.setOnStreetViewPanoramaChangeListener(new StreetViewPanorama.OnStreetViewPanoramaChangeListener() { @Override public void onStreetViewPanoramaChange(StreetViewPanoramaLocation streetViewPanoramaLocation) { if (streetViewPanoramaLocation != null) { panorama.animateTo(camera, duration); } Log.d(TAG, "TESTINGGGGGGGGGG"); } }); } } 

Я не уверен, задал ваш вопрос, так что комментарий, если я ошибаюсь, но кажется, что вы можете повернуть эту инструкцию

 panorama.animateTo(camera, duration); 

И вы переходите в определенное место, используя переменную «камера», которую вы создали ранее.

Итак, если я правильно понимаю, что вы пытаетесь сделать, вам нужно проверить наличие датчиков (акселерометра и положения) мобильного телефона, чтобы получить движение, а затем применить правильное движение к панораме. Взгляните на документацию по сенсору Android , чтобы получить правильные слушатели (или как зарегистрировать использование датчика), затем постройте правильный объект камеры в соответствии с ускорением, зарегистрированным телефоном (левое ускорение -> вращение влево, правое ускорение -> Вращение справа).

Если вам нужен пример кода, я бы предложил вам посмотреть этот вопрос, который содержит некоторые другие ссылки, которые помогут вам использовать датчики и получить больше документов.

Если это не поможет, прокомментируйте и / или уточните вопрос.