2017-04-06 5 views
6

मैं एक ऐप में एक सुविधा के रूप में एक गतिविधि जोड़ने की कोशिश कर रहा हूं, जहां मैं इमारत कर रहा हूं, एपीआई एक लम्बे समय तक वापस आ जाएगी, और इस लम्बे समय तक मैं Google सड़क दृश्य लोड करूंगा। जो डिवाइस के आंदोलन के साथ, स्थिति के 360 डिग्री कोण घुमाएगा। मैं डिवाइस के आंदोलन भाग पर संघर्ष कर रहा हूं। स्क्रीन पर अपनी अंगुलियों का उपयोग करके आप घूम सकते हैं। मुझे आश्चर्य है कि क्या कोई मुझे सड़क दृश्य की स्थिति को प्रभावित करने के लिए डिवाइस आंदोलन प्राप्त करने में सही दिशा में इंगित कर सकता है?Google स्ट्रीट व्यू + डिवाइस टिल्टिंग

कोड मैं अब तक है:

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"); 
      } 
     }); 
    } 
} 
+0

आप कड़ी मेहनत और असर क्यों कड़ी मेहनत करते हैं? मेरा सुझाव है कि आप इसे [डॉक्टर उदाहरण] में उपलब्ध कराए गए जैसा ही उपयोग करें (https://developers.google.com/maps/documentation/android-api/streetview#animate_the_camera_movements) –

उत्तर

2

मुझे यकीन है कि अपने प्रश्न नहीं दिया जाता हूँ, इसलिए टिप्पणी अगर मैं गलत हूँ लेकिन ऐसा लगता है कि आप इस अनुदेश के माध्यम से बारी बारी से करने में सक्षम हो

panorama.animateTo(camera, duration); 

और आप पहले बनाए गए "कैमरा" चर का उपयोग करके एक विशिष्ट स्थान पर जा रहे हैं।

तो, यदि मैं सही तरीके से समझता हूं कि आप क्या करने की कोशिश कर रहे हैं, तो आपको गति प्राप्त करने के लिए मोबाइलफोन सेंसर (एक्सेलेरोमीटर & स्थिति) की जांच करनी होगी, फिर पैनोरमा में सही गति लागू करें। उचित श्रोताओं (या सेंसर उपयोग को पंजीकृत करने के लिए) प्राप्त करने के लिए android sensor documentation पर एक नज़र डालें, फिर फोन द्वारा पंजीकृत त्वरण के अनुसार सही कैमरा ऑब्जेक्ट बनाएं (बाएं त्वरण -> बाएं घुमाएं, दाएं त्वरण -> घुमावदार दाएं)।

यदि आपको कोड उदाहरण की आवश्यकता है तो मैं आपको this question देखने का सुझाव दूंगा जिसमें सेंसर का उपयोग करने और अधिक दस्तावेज़ प्राप्त करने में आपकी सहायता करने के लिए कुछ अन्य लिंक हैं।

यदि यह प्रश्न, टिप्पणी और/या प्रश्न को स्पष्ट नहीं करता है।

संबंधित मुद्दे