রাস্তার দৃশ্য

প্ল্যাটফর্ম বেছে নিন: Android iOS JavaScript

Google Street View, কভারেজ এরিয়া জুড়ে নির্দিষ্ট রাস্তা থেকে প্যানোরামিক ৩৬০-ডিগ্রি ভিউ প্রদান করে।

এই ভিডিওতে দেখানো হয়েছে যে কীভাবে আপনি Street View পরিষেবা ব্যবহার করে ম্যাপে কোনও ঠিকানার রিয়েল-ওয়ার্ল্ড অভিজ্ঞতা আপনার ব্যবহারকারীদের দিতে পারেন। এর মাধ্যমে তাদের গন্তব্য বা আগ্রহের কোনও জায়গা সম্পর্কে অর্থপূর্ণ প্রসঙ্গ তাদের প্রদান করা হয়।

Google Maps Android API v2-এর মাধ্যমে উপলভ্য কভারেজ আপনার Android ডিভাইসে Google Maps অ্যাপের কভারেজের মতোই। আপনি Street View সম্পর্কে আরও পড়তে পারেন এবং ইন্টারেক্টিভ ম্যাপে কাজ করে এমন এলাকা দেখতে পারেন, Street View সম্পর্কে লিঙ্কে গিয়ে।

StreetViewPanorama ক্লাস আপনার অ্যাপ্লিকেশনে Street View প্যানোরামা মডেল করে। আপনার UI-এর মধ্যে, প্যানোরামাকে StreetViewPanoramaFragment বা StreetViewPanoramaView অবজেক্টের মাধ্যমে প্রতিনিধিত্ব করা হয়।

কোডের নমুনা

GitHub-এ ApiDemos রিপোজিটরি-তে এমন নমুনা আছে যা Street View-এর ব্যবহার দেখায়।

Kotlin স্যাম্পেল:

Java স্যাম্পেল:

Android-এর জন্য Maps SDK-তে Street View-এর ওভারভিউ

Maps SDK for Android, Google Street View-তে ব্যবহার করা ছবি পাওয়া ও ম্যানিপুলেট করার জন্য Street View পরিষেবা প্রদান করে। ছবিগুলি প্যানোরামা হিসেবে দেখানো হয়।

প্রতিটি Street View প্যানোরামা হল একটি ছবি বা ছবির সেট, যা একটি লোকেশন থেকে সম্পূর্ণ ৩৬০-ডিগ্রি ভিউ প্রদান করে। ছবিগুলি ইকুইরেকট্যাঙ্গুলার (প্লেট ক্যারি) প্রজেকশন অনুযায়ী হতে হবে, যাতে ৩৬০ ডিগ্রি অনুভূমিক ভিউ (সম্পূর্ণ র‍্যাপ-অ্যারাউন্ড) এবং ১৮০ ডিগ্রি উল্লম্ব ভিউ (সোজা উপর থেকে সোজা নিচ পর্যন্ত) থাকে। এর ফলে তৈরি হওয়া ৩৬০-ডিগ্রি প্যানোরামা, একটি গোলকের উপর প্রজেকশনকে সংজ্ঞায়িত করে, যেখানে ছবিটি সেই গোলকের দ্বি-মাত্রিক পৃষ্ঠে মোড়ানো থাকে।

StreetViewPanorama একটি ভিউয়ার প্রদান করে যা প্যানোরামাকে একটি গোলক হিসেবে রেন্ডার করে যার কেন্দ্রে একটি ক্যামেরা থাকে। আপনি জুম ও ক্যামেরার ওরিয়েন্টেশন (টিল্ট ও বিয়ারিং) কন্ট্রোল করতে StreetViewPanoramaCamera ম্যানিপুলেট করতে পারবেন।

শুরু করুন

প্রোজেক্ট সেট-আপ করা

Maps SDK for Android প্রোজেক্ট সেট-আপ করতে শুরু করার নির্দেশিকা অনুসরণ করুন।

প্যানোরামা যোগ করার আগে Street View প্যানোরামা উপলভ্য কিনা তা চেক করুন

Google Play পরিষেবা SDK ক্লায়েন্ট লাইব্রেরিতে কয়েকটি Street View স্যাম্পেল আছে যা আপনি নিজের প্রোজেক্টে ইমপোর্ট করতে এবং ডেভেলপমেন্টের ভিত্তি হিসেবে ব্যবহার করতে পারবেন। স্যাম্পেল ইমপোর্ট করার নির্দেশিকার জন্য ভূমিকা দেখুন।

Maps SDK for Android Utility Library হল ক্লাসের একটি ওপেন সোর্স লাইব্রেরি যা বিভিন্ন অ্যাপ্লিকেশনের জন্য উপযোগী। GitHub রিপোজিটরিতে Street View মেটাডেটা ইউটিলিটি অন্তর্ভুক্ত করা আছে। এই ইউটিলিটি চেক করে দেখে যে Street View-তে কোনও লোকেশন কাজ করে কিনা। এই মেটাডেটা ইউটিলিটি কল করে এবং উত্তর OK হলে তবেই Street View প্যানোরামা যোগ করে, Android অ্যাপে Street View প্যানোরামা যোগ করার সময় আপনি সমস্যা এড়াতে পারবেন।

API ব্যবহার করা

Android ফ্র্যাগমেন্টে Street View প্যানোরামা যোগ করতে, নিচে দেওয়া নির্দেশাবলী অনুসরণ করুন। আপনার অ্যাপ্লিকেশনে Street View যোগ করার সবচেয়ে সহজ উপায় এটিই। তারপর, ফ্র্যাগমেন্ট, ভিউ ও প্যানোরামা কাস্টমাইজ করা সম্পর্কে আরও পড়ুন।

Street View প্যানোরামা যোগ করা

এরকম Street View প্যানোরামা যোগ করতে নিচের ধাপগুলি অনুসরণ করুন:

Street View প্যানোরামা ডেমো

সংক্ষেপে:

  1. অ্যাক্টিভিটি-তে একটি Fragment অবজেক্ট যোগ করুন যা Street View প্যানোরামা ম্যানেজ করবে। এটি করার সবচেয়ে সহজ উপায় হল Activity-এর জন্য লেআউট ফাইলে <fragment> এলিমেন্ট যোগ করা।
  2. OnStreetViewPanoramaReadyCallback ইন্টারফেস প্রয়োগ করুন এবং StreetViewPanorama অবজেক্টের হ্যান্ডেল পেতে onStreetViewPanoramaReady(StreetViewPanorama) কলব্যাক পদ্ধতি ব্যবহার করুন।
  3. কলব্যাক রেজিস্টার করতে ফ্র্যাগমেন্টে getStreetViewPanoramaAsync() কল করুন।

প্রতিটি ধাপ সম্পর্কে আরও বিবরণ নিচে দেওয়া হল।

ফ্র্যাগমেন্ট যোগ করুন

Fragment অবজেক্টকে ডিফাইন করতে অ্যাক্টিভিটির লেআউট ফাইলে একটি <fragment> এলিমেন্ট যোগ করুন। এই এলিমেন্টে, class অ্যাট্রিবিউটকে com.google.android.gms.maps.StreetViewPanoramaFragment (অথবা SupportStreetViewPanoramaFragment) হিসেবে সেট করুন।

লেআউট ফাইলে ফ্র্যাগমেন্টের একটি উদাহরণ এখানে দেওয়া হল:

<fragment
    android:name="com.google.android.gms.maps.StreetViewPanoramaFragment"
    android:id="@+id/streetviewpanorama"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

Street View কোড যোগ করা

আপনার অ্যাপের মধ্যে Street View প্যানোরামা নিয়ে কাজ করতে, আপনাকে OnStreetViewPanoramaReadyCallback ইন্টারফেস প্রয়োগ করতে হবে এবং StreetViewPanoramaFragment বা StreetViewPanoramaView অবজেক্টে কলব্যাকের ইনস্ট্যান্স সেট করতে হবে। এই টিউটোরিয়াল StreetViewPanoramaFragment ব্যবহার করে, কারণ আপনার অ্যাপে Street View যোগ করার এটিই সবচেয়ে সহজ উপায়। প্রথম ধাপ হল কলব্যাক ইন্টারফেস প্রয়োগ করা:

Kotlin

class StreetViewActivity : AppCompatActivity(), OnStreetViewPanoramaReadyCallback {
    // ...
    }

    private fun newView() {
        val sanFrancisco = LatLng(37.754130, -122.447129)
        val view = StreetViewPanoramaView(
            this,
            StreetViewPanoramaOptions().position(sanFrancisco)
        )
    }

    private fun setLocationOfThePanorama(streetViewPanorama: StreetViewPanorama) {
        val sanFrancisco = LatLng(37.754130, -122.447129)

        // Set position with LatLng only.
        streetViewPanorama.setPosition(sanFrancisco)

        // Set position with LatLng and radius.
        streetViewPanorama.setPosition(sanFrancisco, 20)

        // Set position with LatLng and source.
        streetViewPanorama.setPosition(sanFrancisco, StreetViewSource.OUTDOOR)

        // Set position with LaLng, radius and source.
        streetViewPanorama.setPosition(sanFrancisco, 20, StreetViewSource.OUTDOOR)

        streetViewPanorama.location.links.firstOrNull()?.let { link: StreetViewPanoramaLink ->
            streetViewPanorama.setPosition(link.panoId)
        }
    }

    private fun zoom(streetViewPanorama: StreetViewPanorama) {
        val zoomBy = 0.5f
        val camera = StreetViewPanoramaCamera.Builder()
            .zoom(streetViewPanorama.panoramaCamera.zoom + zoomBy)
            .tilt(streetViewPanorama.panoramaCamera.tilt)
            .bearing(streetViewPanorama.panoramaCamera.bearing)
            .build()
    }

    private fun pan(streetViewPanorama: StreetViewPanorama) {
        val panBy = 30f
        val camera = StreetViewPanoramaCamera.Builder()
            .zoom(streetViewPanorama.panoramaCamera.zoom)
            .tilt(streetViewPanorama.panoramaCamera.tilt)
            .bearing(streetViewPanorama.panoramaCamera.bearing - panBy)
            .build()
    }

    private fun tilt(streetViewPanorama: StreetViewPanorama) {
        var tilt = streetViewPanorama.panoramaCamera.tilt + 30
        tilt = if (tilt > 90) 90f else tilt
        val previous = streetViewPanorama.panoramaCamera
        val camera = StreetViewPanoramaCamera.Builder(previous)
            .tilt(tilt)
            .build()
    }

    private fun animate(streetViewPanorama: StreetViewPanorama) {
        // Keeping the zoom and tilt. Animate bearing by 60 degrees in 1000 milliseconds.
        val duration: Long = 1000
        val camera = StreetViewPanoramaCamera.Builder()
            .zoom(streetViewPanorama.panoramaCamera.zoom)
            .tilt(streetViewPanorama.panoramaCamera.tilt)
            .bearing(streetViewPanorama.panoramaCamera.bearing - 60)
            .build()
        streetViewPanorama.animateTo(camera, duration)
    }
}

      

Java

public class StreetViewActivity extends AppCompatActivity implements OnStreetViewPanoramaReadyCallback {
    // ...
    }

    private void newView() {
        LatLng sanFrancisco = new LatLng(37.754130, -122.447129);
        StreetViewPanoramaView view = new StreetViewPanoramaView(this,
            new StreetViewPanoramaOptions().position(sanFrancisco));
    }

    private void setLocationOfThePanorama(StreetViewPanorama streetViewPanorama) {
        LatLng sanFrancisco = new LatLng(37.754130, -122.447129);

        // Set position with LatLng only.
        streetViewPanorama.setPosition(sanFrancisco);

        // Set position with LatLng and radius.
        streetViewPanorama.setPosition(sanFrancisco, 20);

        // Set position with LatLng and source.
        streetViewPanorama.setPosition(sanFrancisco, StreetViewSource.OUTDOOR);

        // Set position with LaLng, radius and source.
        streetViewPanorama.setPosition(sanFrancisco, 20, StreetViewSource.OUTDOOR);

        StreetViewPanoramaLocation location = streetViewPanorama.getLocation();
        if (location != null && location.links != null) {
            streetViewPanorama.setPosition(location.links[0].panoId);
        }
    }

    private void zoom(StreetViewPanorama streetViewPanorama) {
        float zoomBy = 0.5f;
        StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder()
            .zoom(streetViewPanorama.getPanoramaCamera().zoom + zoomBy)
            .tilt(streetViewPanorama.getPanoramaCamera().tilt)
            .bearing(streetViewPanorama.getPanoramaCamera().bearing)
            .build();
    }

    private void pan(StreetViewPanorama streetViewPanorama) {
        float panBy = 30;
        StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder()
            .zoom(streetViewPanorama.getPanoramaCamera().zoom)
            .tilt(streetViewPanorama.getPanoramaCamera().tilt)
            .bearing(streetViewPanorama.getPanoramaCamera().bearing - panBy)
            .build();
    }

    private void tilt(StreetViewPanorama streetViewPanorama) {
        float tilt = streetViewPanorama.getPanoramaCamera().tilt + 30;
        tilt = (tilt > 90) ? 90 : tilt;

        StreetViewPanoramaCamera previous = streetViewPanorama.getPanoramaCamera();

        StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder(previous)
            .tilt(tilt)
            .build();
    }

    private void animate(StreetViewPanorama streetViewPanorama) {
        // Keeping the zoom and tilt. Animate bearing by 60 degrees in 1000 milliseconds.
        long duration = 1000;
        StreetViewPanoramaCamera camera =
            new StreetViewPanoramaCamera.Builder()
                .zoom(streetViewPanorama.getPanoramaCamera().zoom)
                .tilt(streetViewPanorama.getPanoramaCamera().tilt)
                .bearing(streetViewPanorama.getPanoramaCamera().bearing - 60)
                .build();
        streetViewPanorama.animateTo(camera, duration);
    }
}

      

আপনার Activity-এর onCreate() মেথডে, লেআউট ফাইলকে কন্টেন্ট ভিউ হিসেবে সেট করুন। যেমন, লেআউট ফাইলের নাম main.xml হলে, এই কোড ব্যবহার করুন:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_street_view)
    val streetViewPanoramaFragment =
        supportFragmentManager
            .findFragmentById(R.id.street_view_panorama) as SupportStreetViewPanoramaFragment
    streetViewPanoramaFragment.getStreetViewPanoramaAsync(this)
}

      

Java

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_street_view);
    SupportStreetViewPanoramaFragment streetViewPanoramaFragment =
        (SupportStreetViewPanoramaFragment) getSupportFragmentManager()
            .findFragmentById(R.id.street_view_panorama);
    streetViewPanoramaFragment.getStreetViewPanoramaAsync(this);
}

      

FragmentManager.findFragmentById() কল করে ফ্র্যাগমেন্টের হ্যান্ডেল পান, আপনার <fragment> এলিমেন্টের রিসোর্স আইডি এতে পাস করুন। লক্ষ্য করুন যে আপনি লেআউট ফাইল তৈরি করার সময় রিসোর্স আইডি R.id.streetviewpanorama অটোমেটিক Android প্রোজেক্টে যোগ করা হয়েছে।

তারপর ফ্র্যাগমেন্টে কলব্যাক সেট করতে getStreetViewPanoramaAsync() ব্যবহার করুন।

Kotlin

val streetViewPanoramaFragment =
    supportFragmentManager
        .findFragmentById(R.id.street_view_panorama) as SupportStreetViewPanoramaFragment
streetViewPanoramaFragment.getStreetViewPanoramaAsync(this)

      

Java

SupportStreetViewPanoramaFragment streetViewPanoramaFragment =
    (SupportStreetViewPanoramaFragment) getSupportFragmentManager()
        .findFragmentById(R.id.street_view_panorama);
streetViewPanoramaFragment.getStreetViewPanoramaAsync(this);

      

ব্যবহারের জন্য প্রস্তুত StreetViewPanorama-এর নন-নাল ইনস্ট্যান্স ফিরিয়ে আনতে onStreetViewPanoramaReady(StreetViewPanorama) কলব্যাক পদ্ধতি ব্যবহার করুন।

Kotlin

override fun onStreetViewPanoramaReady(streetViewPanorama: StreetViewPanorama) {
    val sanFrancisco = LatLng(37.754130, -122.447129)
    streetViewPanorama.setPosition(sanFrancisco)
}

      

Java

@Override
public void onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) {
    LatLng sanFrancisco = new LatLng(37.754130, -122.447129);
    streetViewPanorama.setPosition(sanFrancisco);
}

      

প্রাথমিক অবস্থা কনফিগার করা সম্পর্কে আরও তথ্য

ম্যাপের মতো, XML-এর মাধ্যমে Street View প্যানোরমার প্রাথমিক অবস্থা কনফিগার করা সম্ভব নয়। তবে, আপনার নির্দিষ্ট বিকল্প সহ একটি StreetViewPanoramaOptions অবজেক্ট পাস করে আপনি প্রোগ্রাম্যাটিকভাবে প্যানোরামা কনফিগার করতে পারেন।

  • আপনি StreetViewPanoramaFragment ব্যবহার করলে, ফ্র্যাগমেন্ট তৈরি করতে StreetViewPanoramaFragment.newInstance(StreetViewPanoramaOptions options) স্ট্যাটিক ফ্যাক্টরি মেথড ব্যবহার করুন এবং আপনার কাস্টম কনফিগার করা বিকল্প পাস করুন।
  • আপনি StreetViewPanoramaView ব্যবহার করলে, StreetViewPanoramaView(Context, StreetViewPanoramaOptions) কনস্ট্রাক্টর ব্যবহার করুন এবং আপনার কাস্টম কনফিগার করা বিকল্প পাস করুন।

Kotlin

val sanFrancisco = LatLng(37.754130, -122.447129)
val view = StreetViewPanoramaView(
    this,
    StreetViewPanoramaOptions().position(sanFrancisco)
)

      

Java

LatLng sanFrancisco = new LatLng(37.754130, -122.447129);
StreetViewPanoramaView view = new StreetViewPanoramaView(this,
    new StreetViewPanoramaOptions().position(sanFrancisco));

      

StreetViewPanoramaFragment সম্পর্কে আরও তথ্য

StreetViewPanoramaFragment হল Android ফ্র্যাগমেন্ট ক্লাসের সাবক্লাস এবং এটি আপনাকে Android ফ্র্যাগমেন্টে Street View প্যানোরামা প্লেস করতে দেয়। StreetViewPanoramaFragment অবজেক্টগুলি প্যানোরমার কন্টেনার হিসেবে কাজ করে এবং StreetViewPanorama অবজেক্টে অ্যাক্সেস প্রদান করে।

StreetViewPanoramaView

StreetViewPanoramaView, Android-এর একটি সাবক্লাস View ক্লাস, আপনাকে Android View-এ Street View প্যানোরামা প্লেস করতে দেয়। View হল স্ক্রিনের একটি আয়তাকার অংশ এবং এটি Android অ্যাপ্লিকেশন ও উইজেটের একটি মৌলিক বিল্ডিং ব্লক। StreetViewPanoramaFragment-এর মতোই, StreetViewPanoramaView প্যানোরামার জন্য কন্টেনার হিসেবে কাজ করে, StreetViewPanorama অবজেক্টের মাধ্যমে মূল ফিচারগুলি প্রকাশ করে। এই ক্লাসের ব্যবহারকারীদের অবশ্যই সমস্ত অ্যাক্টিভিটি লাইফসাইকেল পদ্ধতি, যেমন onCreate(), onDestroy(), onResume() এবং onPause()), StreetViewPanoramaView ক্লাসের অনুরূপ পদ্ধতিতে ফরওয়ার্ড করতে হবে।

ব্যবহারকারী-নিয়ন্ত্রিত ফিচার কাস্টমাইজ করা

ডিফল্ট হিসেবে, Street View প্যানোরামা দেখার সময় ব্যবহারকারীর জন্য নিম্নলিখিত ফিচার উপলভ্য থাকে: প্যানিং, জুমিং এবং সংলগ্ন প্যানোরামাতে ট্রাভেল করা। আপনি StreetViewPanorama-এ উল্লেখ করা পদ্ধতির মাধ্যমে ব্যবহারকারী-নিয়ন্ত্রিত জেসচার চালু ও বন্ধ করতে পারবেন। জেসচার বন্ধ করা থাকলেও প্রোগ্রাম্যাটিক পরিবর্তন করা যায়।

প্যানোরমার লোকেশন সেট করা

Street View প্যানোরমার লোকেশন সেট করতে, StreetViewPanorama.setPosition() কল করুন, একটি LatLng পাস করান। এছাড়াও, আপনি ঐচ্ছিক প্যারামিটার হিসেবে radius ও source পাস করতে পারবেন।

আপনি যদি Street View-এর জন্য ম্যাচিং প্যানোরামা খোঁজার এলাকা বড় বা ছোট করতে চান, তাহলে ব্যাসার্ধ ব্যবহার করা সুবিধাজনক। ০ ব্যাসার্ধের অর্থ হল প্যানোরামাটি অবশ্যই নির্দিষ্ট LatLng-এর সাথে লিঙ্ক করা থাকতে হবে। ডিফল্ট ব্যাসার্ধ হল ৫০ মিটার। ম্যাচিং এরিয়াতে একাধিক প্যানোরামা থাকলে, API সেরা ম্যাচটি দেখাবে।

আপনি যদি Street View-কে শুধু আউটডোর প্যানোরামা খোঁজার জন্য সীমাবদ্ধ করতে চান, তাহলে সোর্সটি উপযোগী। সাধারণত, Street View প্যানোরামা, জাদুঘর, পাবলিক বিল্ডিং, ক্যাফে ও ব্যবসার মতো জায়গার মধ্যে থাকতে পারে। মনে রাখবেন, নির্দিষ্ট লোকেশনের জন্য আউটডোর প্যানোরামা নাও থাকতে পারে।

Kotlin

val sanFrancisco = LatLng(37.754130, -122.447129)

// Set position with LatLng only.
streetViewPanorama.setPosition(sanFrancisco)

// Set position with LatLng and radius.
streetViewPanorama.setPosition(sanFrancisco, 20)

// Set position with LatLng and source.
streetViewPanorama.setPosition(sanFrancisco, StreetViewSource.OUTDOOR)

// Set position with LaLng, radius and source.
streetViewPanorama.setPosition(sanFrancisco, 20, StreetViewSource.OUTDOOR)

      

Java

LatLng sanFrancisco = new LatLng(37.754130, -122.447129);

// Set position with LatLng only.
streetViewPanorama.setPosition(sanFrancisco);

// Set position with LatLng and radius.
streetViewPanorama.setPosition(sanFrancisco, 20);

// Set position with LatLng and source.
streetViewPanorama.setPosition(sanFrancisco, StreetViewSource.OUTDOOR);

// Set position with LaLng, radius and source.
streetViewPanorama.setPosition(sanFrancisco, 20, StreetViewSource.OUTDOOR);

      

অন্যথায়, আপনি panoId থেকে StreetViewPanorama.setPosition()-এ পাস করে প্যানোরামা আইডির উপর ভিত্তি করে লোকেশন সেট করতে পারবেন।

পাশাপাশি প্যানোরামার জন্য প্যানোরামা আইডি পেতে, প্রথমে getLocation() ব্যবহার করে StreetViewPanoramaLocation পান। এই অবজেক্টে বর্তমান প্যানোরামার আইডি এবং StreetViewPanoramaLink অবজেক্টের একটি অ্যারে রয়েছে, যার প্রতিটিতে বর্তমান প্যানোরামার সাথে সংযুক্ত একটি প্যানোরামার আইডি রয়েছে।

Kotlin

streetViewPanorama.location.links.firstOrNull()?.let { link: StreetViewPanoramaLink ->
    streetViewPanorama.setPosition(link.panoId)
}

      

Java

StreetViewPanoramaLocation location = streetViewPanorama.getLocation();
if (location != null && location.links != null) {
    streetViewPanorama.setPosition(location.links[0].panoId);
}

      

জুম ইন ও জুম আউট করা

আপনি StreetViewPanoramaCamera.zoom সেট করে প্রোগ্রাম্যাটিক্যালি জুম লেভেল পরিবর্তন করতে পারবেন। জুম ১.০ হিসেবে সেট করলে, ছবি ২ গুণ বড় হয়ে যাবে।

নিম্নলিখিত স্নিপেট StreetViewPanoramaCamera.Builder() ব্যবহার করে আগে থেকে থাকা ক্যামেরার টিল্ট ও বিয়ারিং সহ নতুন ক্যামেরা তৈরি করে, যেখানে জুম পঞ্চাশ শতাংশ বাড়ানো হয়।

Kotlin

val zoomBy = 0.5f
val camera = StreetViewPanoramaCamera.Builder()
    .zoom(streetViewPanorama.panoramaCamera.zoom + zoomBy)
    .tilt(streetViewPanorama.panoramaCamera.tilt)
    .bearing(streetViewPanorama.panoramaCamera.bearing)
    .build()

      

Java

float zoomBy = 0.5f;
StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder()
    .zoom(streetViewPanorama.getPanoramaCamera().zoom + zoomBy)
    .tilt(streetViewPanorama.getPanoramaCamera().tilt)
    .bearing(streetViewPanorama.getPanoramaCamera().bearing)
    .build();

      

ক্যামেরার সজ্জা (দৃষ্টিভঙ্গি) সেট করা

আপনি Street View ক্যামেরার ওরিয়েন্টেশন নির্ধারণ করতে পারবেন StreetViewPanoramaCamera-এ বিয়ারিং ও টিল্ট সেট করার মাধ্যমে।

দিকনির্দেশ
ক্যামেরা যে দিকে পয়েন্ট করছে, তা ডিগ্রিতে নির্দিষ্ট করা আছে ক্যামেরার লোকাসের চারপাশে, প্রকৃত উত্তর দিক থেকে ঘড়ির কাঁটার দিকে। উত্তর দিক হল ০, পূর্ব দিক হল ৯০, দক্ষিণ দিক হল ১৮০, পশ্চিম দিক হল ২৭০।
টিল্ট
Y-অক্ষ উপরে বা নিচে কাত করুন। রেঞ্জ হল -৯০ থেকে ০ হয়ে ৯০ পর্যন্ত, যেখানে -৯০ হল সোজাসুজি নিচের দিকে তাকানো, ০ হল দিগন্তের কেন্দ্রে এবং ৯০ হল সোজাসুজি উপরের দিকে তাকানো। ক্যামেরার প্রাথমিক ডিফল্ট পিচ থেকে তারতম্য পরিমাপ করা হয়, যা প্রায়শই (তবে সবসময় নয়) সমতল অনুভূমিক হয়। যেমন, পাহাড়ে তোলা কোনও ছবির ডিফল্ট পিচ সম্ভবত অনুভূমিক হবে না।

নিম্নলিখিত স্নিপেটটি StreetViewPanoramaCamera.Builder() ব্যবহার করে একটি নতুন ক্যামেরা তৈরি করে, যার জুম এবং টিল্ট বর্তমান ক্যামেরার মতোই থাকে, তবে বেয়ারিং ৩০ ডিগ্রি বাম দিকে পরিবর্তিত হয়।

Kotlin

val panBy = 30f
val camera = StreetViewPanoramaCamera.Builder()
    .zoom(streetViewPanorama.panoramaCamera.zoom)
    .tilt(streetViewPanorama.panoramaCamera.tilt)
    .bearing(streetViewPanorama.panoramaCamera.bearing - panBy)
    .build()

      

Java

float panBy = 30;
StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder()
    .zoom(streetViewPanorama.getPanoramaCamera().zoom)
    .tilt(streetViewPanorama.getPanoramaCamera().tilt)
    .bearing(streetViewPanorama.getPanoramaCamera().bearing - panBy)
    .build();

      

নিম্নলিখিত স্নিপেট ক্যামেরাটিকে ৩০ ডিগ্রি উপরের দিকে টিল্ট করে।

Kotlin

var tilt = streetViewPanorama.panoramaCamera.tilt + 30
tilt = if (tilt > 90) 90f else tilt
val previous = streetViewPanorama.panoramaCamera
val camera = StreetViewPanoramaCamera.Builder(previous)
    .tilt(tilt)
    .build()

      

Java

float tilt = streetViewPanorama.getPanoramaCamera().tilt + 30;
tilt = (tilt > 90) ? 90 : tilt;

StreetViewPanoramaCamera previous = streetViewPanorama.getPanoramaCamera();

StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder(previous)
    .tilt(tilt)
    .build();

      

ক্যামেরা মুভমেন্ট অ্যানিমেট করা

ক্যামেরা মুভমেন্ট অ্যানিমেট করতে, StreetViewPanorama.animateTo() কল করুন। অ্যানিমেশনটি বর্তমান ক্যামেরা অ্যাট্রিবিউট এবং নতুন ক্যামেরা অ্যাট্রিবিউটের মধ্যে ইন্টারপোলেট করে। আপনি অ্যানিমেশন ছাড়াই সরাসরি ক্যামেরায় যেতে চাইলে, সময়সীমা ০ হিসেবে সেট করতে পারেন।

Kotlin

// Keeping the zoom and tilt. Animate bearing by 60 degrees in 1000 milliseconds.
val duration: Long = 1000
val camera = StreetViewPanoramaCamera.Builder()
    .zoom(streetViewPanorama.panoramaCamera.zoom)
    .tilt(streetViewPanorama.panoramaCamera.tilt)
    .bearing(streetViewPanorama.panoramaCamera.bearing - 60)
    .build()
streetViewPanorama.animateTo(camera, duration)

      

Java

// Keeping the zoom and tilt. Animate bearing by 60 degrees in 1000 milliseconds.
long duration = 1000;
StreetViewPanoramaCamera camera =
    new StreetViewPanoramaCamera.Builder()
        .zoom(streetViewPanorama.getPanoramaCamera().zoom)
        .tilt(streetViewPanorama.getPanoramaCamera().tilt)
        .bearing(streetViewPanorama.getPanoramaCamera().bearing - 60)
        .build();
streetViewPanorama.animateTo(camera, duration);

      

Handler.postDelayed() ব্যবহার করে, প্রতি ২০০০ মিলিসেকেন্ড অন্তর উপরের অ্যানিমেশন চালানোর জন্য শিডিউল করলে, নিচের ছবিতে তার ফলাফল দেখানো হয়েছে:

Street View প্যানোরামা অ্যানিমেশন ডেমো