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 স্যাম্পেল:
- StreetViewPanoramaBasicDemoActivity: Street View ব্যবহার করার প্রাথমিক তথ্য
- StreetViewPanoramaEventsDemoActivity: ইভেন্ট শুনছে
- StreetViewPanoramaNavigationDemoActivity: প্রোগ্রাম্যাটিক্যালি Street View প্যানোরামা নিয়ন্ত্রণ করা
- StreetViewPanoramaOptionsDemoActivity: UI এবং জেসচার সংক্রান্ত বিকল্প পরিবর্তন করা
- StreetViewPanoramaViewDemoActivity:
StreetViewPanoramaView(Fragment-এর পরিবর্তে) ব্যবহার করে - SplitStreetViewPanoramaAndMapDemoActivity: এমন একটি অ্যাক্টিভিটি ব্যবহার করা যা Street View এবং ম্যাপ দেখায়
Java স্যাম্পেল:
- StreetViewPanoramaBasicDemoActivity: Street View ব্যবহার করার প্রাথমিক তথ্য
- StreetViewPanoramaEventsDemoActivity: ইভেন্ট শুনছে
- StreetViewPanoramaNavigationDemoActivity: প্রোগ্রাম্যাটিক্যালি Street View প্যানোরামা নিয়ন্ত্রণ করা
- StreetViewPanoramaOptionsDemoActivity: UI এবং জেসচার সংক্রান্ত বিকল্প পরিবর্তন করা
- StreetViewPanoramaViewDemoActivity:
StreetViewPanoramaViewব্যবহার করে (Fragment-এর পরিবর্তে) - SplitStreetViewPanoramaAndMapDemoActivity: এমন একটি অ্যাক্টিভিটি তৈরি করা যা Street View এবং ম্যাপ দেখায়
Android-এর জন্য Maps SDK-তে Street View-এর ওভারভিউ
Maps SDK for Android, Google Street View-তে ব্যবহার করা ছবি পাওয়া ও ম্যানিপুলেট করার জন্য Street View পরিষেবা প্রদান করে। ছবিগুলি প্যানোরামা হিসেবে দেখানো হয়।
প্রতিটি Street View প্যানোরামা হল একটি ছবি বা ছবির সেট, যা একটি লোকেশন থেকে সম্পূর্ণ ৩৬০-ডিগ্রি ভিউ প্রদান করে। ছবিগুলি ইকুইরেকট্যাঙ্গুলার (প্লেট ক্যারি) প্রজেকশন অনুযায়ী হতে হবে, যাতে ৩৬০ ডিগ্রি অনুভূমিক ভিউ (সম্পূর্ণ চারপাশ) এবং ১৮০ ডিগ্রি উল্লম্ব ভিউ (একদম উপর থেকে একদম নিচ পর্যন্ত) থাকে। এর ফলে তৈরি হওয়া ৩৬০-ডিগ্রি প্যানোরামা, একটি গোলকের উপর প্রজেকশনকে সংজ্ঞায়িত করে, যেখানে ছবিটি সেই গোলকের দ্বি-মাত্রিক পৃষ্ঠে মোড়ানো থাকে।
StreetViewPanorama এমন একটি ভিউয়ার প্রদান করে যা প্যানোরামাকে
একটি গোলক হিসেবে রেন্ডার করে যার কেন্দ্রে একটি ক্যামেরা থাকে। আপনি
StreetViewPanoramaCamera ম্যানিপুলেট করে ক্যামেরার জুম
ও ওরিয়েন্টেশন (টিল্ট ও বিয়ারিং) কন্ট্রোল করতে পারবেন।
শুরু করুন
প্রোজেক্ট সেট-আপ করা
Android প্রোজেক্টের জন্য Maps SDK সেট-আপ করতে শুরু করার নির্দেশিকা ফলো করুন।
প্যানোরামা যোগ করার আগে 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 প্যানোরামা যোগ করতে নিচের ধাপগুলি অনুসরণ করুন:
সংক্ষেপে:
- অ্যাক্টিভিটিতে একটি Fragment অবজেক্ট যোগ করুন যা
Street View প্যানোরামা ম্যানেজ করবে। এটি করার সবচেয়ে সহজ উপায় হল
Activity-এর জন্য লেআউট ফাইলে একটি<fragment>এলিমেন্ট যোগ করা। OnStreetViewPanoramaReadyCallbackইন্টারফেস প্রয়োগ করুন এবংStreetViewPanoramaঅবজেক্টের হ্যান্ডেল পেতেonStreetViewPanoramaReady(StreetViewPanorama)কলব্যাক পদ্ধতি ব্যবহার করুন।- কলব্যাক রেজিস্টার করতে ফ্র্যাগমেন্টে
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 Fragment ক্লাসের একটি সাবক্লাস এবং এটি আপনাকে 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();
ক্যামেরার ওরিয়েন্টেশন (পয়েন্ট অফ ভিউ) সেট করুন
আপনি StreetViewPanoramaCamera-এ বিয়ারিং ও টিল্ট সেট করে Street View ক্যামেরার ওরিয়েন্টেশন নির্ধারণ করতে পারবেন।
- বেয়ারিং
- ক্যামেরাটি যে দিকে পয়েন্ট করছে, সেটি ক্যামেরা লোকাসের চারপাশে, প্রকৃত উত্তর থেকে ঘড়ির কাঁটার দিকে ডিগ্রিতে নির্দিষ্ট করা হয়েছে। প্রকৃত উত্তর হল ০, পূর্ব হল ৯০, দক্ষিণ হল ১৮০, পশ্চিম হল ২৭০।
- টিল্ট
- 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() ব্যবহার করে,
প্রতি ২০০০ মিলিসেকেন্ডে উপরের অ্যানিমেশন চালানোর জন্য শিডিউল করলে,
নিচের ছবিতে তার ফলাফল দেখানো হয়েছে: