java - Google Street view + device tilting -
i'm trying add activity feature app i'm building where, api return lat long, , lat long load google street view. movement of device, rotate 360 degree angle of position. i'm struggling on movement part of device. using fingers on screen can rotate. wonder if can point me in right direction in getting device movement affect position of street view?
the code have far is:
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"); } }); } }
i'm not sure given question, comment if i'm wrong seems you're able rotate through instruction
panorama.animateto(camera, duration); and you're moving specific location using "camera" variable built before.
so, if understand correctly trying do, have check mobilephone sensors (accelerometer & position) motion apply correct motion panorama. take @ android sensor documentation in order proper listeners (or how register sensor usage) build correct camera object according acceleration registered phone (left acceleration -> rotating left, right acceleration --> rotating right).
if need code example i'd suggest this question has other links using sensors , getting more doc.
if not help, comment and/or clarify question.
Comments
Post a Comment