গুগল স্ট্রিট ভিউ তার পরিষেবা এলাকার নির্দিষ্ট রাস্তাগুলো থেকে ৩৬০-ডিগ্রি প্যানোরামিক দৃশ্য প্রদান করে।
এই ভিডিওতে দেখানো হয়েছে, কীভাবে আপনি স্ট্রিট ভিউ পরিষেবা ব্যবহার করে আপনার ব্যবহারকারীদের মানচিত্রে কোনো ঠিকানার বাস্তব অভিজ্ঞতা দিতে পারেন এবং তাদের গন্তব্য বা আগ্রহের যেকোনো স্থান সম্পর্কে অর্থপূর্ণ প্রেক্ষাপট প্রদান করতে পারেন।
Google Maps Android API v2-এর মাধ্যমে যে এলাকা দেখা যায়, তা আপনার Android ডিভাইসের Google Maps অ্যাপের মতোই। আপনি ‘About Street View’ অংশে Street View সম্পর্কে আরও পড়তে এবং একটি ইন্টারেক্টিভ মানচিত্রে সমর্থিত এলাকাগুলো দেখতে পারেন।
StreetViewPanorama ক্লাসটি আপনার অ্যাপ্লিকেশনের স্ট্রিট ভিউ প্যানোরামাকে মডেল করে। আপনার UI-এর মধ্যে, একটি প্যানোরামা StreetViewPanoramaFragment বা StreetViewPanoramaView অবজেক্ট দ্বারা উপস্থাপিত হয়।
কোড নমুনা
গিটহাবের ApiDemos রিপোজিটরিতে স্ট্রিট ভিউ-এর ব্যবহার প্রদর্শনকারী নমুনা রয়েছে।
কোটলিন নমুনা:
- StreetViewPanoramaBasicDemoActivity : স্ট্রিট ভিউ ব্যবহারের প্রাথমিক বিষয়সমূহ
- StreetViewPanoramaEventsDemoActivity : ইভেন্ট শোনা
- StreetViewPanoramaNavigationDemoActivity : প্রোগ্রাম্যাটিকভাবে স্ট্রিট ভিউ প্যানোরামা নিয়ন্ত্রণ করা
- StreetViewPanoramaOptionsDemoActivity : UI এবং জেসচার অপশন পরিবর্তন করা
- StreetViewPanoramaViewDemoActivity :
StreetViewPanoramaViewএর ব্যবহার (Fragment-এর পরিবর্তে) - SplitStreetViewPanoramaAndMapDemoActivity : এমন একটি অ্যাক্টিভিটি ব্যবহার করা যা একটি স্ট্রিট ভিউ এবং একটি মানচিত্র প্রদর্শন করে।
জাভা নমুনা:
- StreetViewPanoramaBasicDemoActivity : স্ট্রিট ভিউ ব্যবহারের প্রাথমিক বিষয়সমূহ
- StreetViewPanoramaEventsDemoActivity : ইভেন্ট শোনা
- StreetViewPanoramaNavigationDemoActivity : প্রোগ্রাম্যাটিকভাবে স্ট্রিট ভিউ প্যানোরামা নিয়ন্ত্রণ করা
- StreetViewPanoramaOptionsDemoActivity : UI এবং জেসচার অপশন পরিবর্তন করা
- StreetViewPanoramaViewDemoActivity :
StreetViewPanoramaViewএর ব্যবহার (Fragment-এর পরিবর্তে) - SplitStreetViewPanoramaAndMapDemoActivity : এমন একটি অ্যাক্টিভিটি তৈরি করা যা একটি স্ট্রিট ভিউ এবং একটি মানচিত্র প্রদর্শন করে।
অ্যান্ড্রয়েডের জন্য ম্যাপস এসডিকে-তে স্ট্রিট ভিউ-এর সংক্ষিপ্ত বিবরণ
অ্যান্ড্রয়েডের জন্য ম্যাপস এসডিকে গুগল স্ট্রিট ভিউতে ব্যবহৃত চিত্রাবলী সংগ্রহ ও সম্পাদনার জন্য একটি স্ট্রিট ভিউ পরিষেবা প্রদান করে। ছবিগুলো প্যানোরামা হিসেবে ফেরত দেওয়া হয়।
প্রতিটি স্ট্রিট ভিউ প্যানোরামা হলো একটি ছবি বা একাধিক ছবির সমষ্টি, যা একটি নির্দিষ্ট স্থান থেকে সম্পূর্ণ ৩৬০-ডিগ্রি দৃশ্য প্রদান করে। ছবিগুলো ইক্যুইরেক্ট্যাঙ্গুলার (প্লেট ক্যারে) প্রজেকশন মেনে চলে, যাতে ৩৬০-ডিগ্রি আনুভূমিক দৃশ্য (সম্পূর্ণ চারপাশ জুড়ে) এবং ১৮০-ডিগ্রি উল্লম্ব দৃশ্য (সরাসরি উপর থেকে সরাসরি নিচে পর্যন্ত) থাকে। এর ফলে প্রাপ্ত ৩৬০-ডিগ্রি প্যানোরামাটি একটি গোলকের উপর এমন একটি প্রজেকশন তৈরি করে, যেখানে ছবিটি সেই গোলকের দ্বি-মাত্রিক পৃষ্ঠে মোড়ানো থাকে।
StreetViewPanorama এমন একটি ভিউয়ার প্রদান করে যা প্যানোরামাটিকে কেন্দ্রে একটি ক্যামেরা সহ একটি গোলক হিসাবে রেন্ডার করে। আপনি ক্যামেরার জুম এবং ওরিয়েন্টেশন (টিল্ট ও বেয়ারিং) নিয়ন্ত্রণ করতে StreetViewPanoramaCamera কে ম্যানিপুলেট করতে পারেন।
শুরু করুন
একটি প্রকল্প সেট আপ করুন
অ্যান্ড্রয়েড প্রজেক্টের জন্য ম্যাপস এসডিকে সেট আপ করতে গেটিং-স্টার্টেড গাইডটি অনুসরণ করুন।
প্যানোরামা যোগ করার আগে স্ট্রিট ভিউ প্যানোরামার প্রাপ্যতা যাচাই করে নিন।
গুগল প্লে সার্ভিসেস এসডিকে ক্লায়েন্ট লাইব্রেরিতে কয়েকটি স্ট্রিট ভিউ স্যাম্পল রয়েছে, যেগুলো আপনি আপনার প্রজেক্টে ইম্পোর্ট করে ডেভেলপমেন্টের ভিত্তি হিসেবে ব্যবহার করতে পারেন। স্যাম্পলগুলো ইম্পোর্ট করার নির্দেশনার জন্য ভূমিকা অংশটি দেখুন।
অ্যান্ড্রয়েডের জন্য ম্যাপস এসডিকে ইউটিলিটি লাইব্রেরি হলো বিভিন্ন অ্যাপ্লিকেশনের জন্য উপযোগী ক্লাসগুলোর একটি ওপেন সোর্স লাইব্রেরি। গিটহাব রিপোজিটরিতে স্ট্রিট ভিউ মেটাডেটা ইউটিলিটি অন্তর্ভুক্ত রয়েছে। এই ইউটিলিটিটি পরীক্ষা করে দেখে যে কোনো একটি অবস্থান স্ট্রিট ভিউ দ্বারা সমর্থিত কিনা। অ্যান্ড্রয়েড অ্যাপে স্ট্রিট ভিউ প্যানোরামা যোগ করার সময় ত্রুটি এড়াতে, আপনি এই মেটাডেটা ইউটিলিটিটি কল করতে পারেন এবং শুধুমাত্র প্রতিক্রিয়া OK হলেই স্ট্রিট ভিউ প্যানোরামাটি যোগ করতে পারেন।
এপিআই ব্যবহার করুন
একটি অ্যান্ড্রয়েড ফ্র্যাগমেন্টে স্ট্রিট ভিউ প্যানোরামা যোগ করতে নিচের নির্দেশাবলী অনুসরণ করুন। আপনার অ্যাপ্লিকেশনে স্ট্রিট ভিউ যোগ করার এটিই সবচেয়ে সহজ উপায়। এরপর ফ্র্যাগমেন্ট, ভিউ এবং প্যানোরামা কাস্টমাইজ করা সম্পর্কে আরও পড়ুন।
একটি স্ট্রিট ভিউ প্যানোরামা যোগ করুন
এরকম একটি স্ট্রিট ভিউ প্যানোরামা যোগ করতে নিচের ধাপগুলো অনুসরণ করুন:

সংক্ষেপে:
- যে অ্যাক্টিভিটিটি স্ট্রিট ভিউ প্যানোরামা পরিচালনা করবে, তাতে একটি Fragment অবজেক্ট যোগ করুন। এটি করার সবচেয়ে সহজ উপায় হলো
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"/>স্ট্রিট ভিউ কোড যোগ করুন
আপনার অ্যাপের মধ্যে স্ট্রিট ভিউ প্যানোরামা নিয়ে কাজ করার জন্য, আপনাকে OnStreetViewPanoramaReadyCallback ইন্টারফেসটি ইমপ্লিমেন্ট করতে হবে এবং একটি StreetViewPanoramaFragment বা StreetViewPanoramaView অবজেক্টে কলব্যাকের একটি ইনস্ট্যান্স সেট করতে হবে। এই টিউটোরিয়ালে একটি StreetViewPanoramaFragment ব্যবহার করা হয়েছে, কারণ আপনার অ্যাপে স্ট্রিট ভিউ যোগ করার এটিই সবচেয়ে সহজ উপায়। প্রথম ধাপ হলো কলব্যাক ইন্টারফেসটি ইমপ্লিমেন্ট করা:
কোটলিন
class StreetViewActivity : AppCompatActivity(), OnStreetViewPanoramaReadyCallback { // ... }
জাভা
class StreetViewActivity extends AppCompatActivity implements OnStreetViewPanoramaReadyCallback { // ... }
আপনার Activity র onCreate() মেথডে, লেআউট ফাইলটিকে কন্টেন্ট ভিউ হিসেবে সেট করুন। উদাহরণস্বরূপ, যদি লেআউট ফাইলটির নাম main.xml হয়, তাহলে এই কোডটি ব্যবহার করুন:
কোটলিন
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) }
জাভা
@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); }
আপনার <fragment> এলিমেন্টের রিসোর্স আইডি পাস করে FragmentManager.findFragmentById() কল করার মাধ্যমে ফ্র্যাগমেন্টটির একটি হ্যান্ডেল পান। লক্ষ্য করুন যে, আপনি যখন লেআউট ফাইলটি বিল্ড করেন, তখন R.id.streetviewpanorama রিসোর্স আইডিটি অ্যান্ড্রয়েড প্রজেক্টে স্বয়ংক্রিয়ভাবে যুক্ত হয়ে যায়।
এরপর ফ্র্যাগমেন্টে কলব্যাক সেট করতে getStreetViewPanoramaAsync() ব্যবহার করুন।
কোটলিন
val streetViewPanoramaFragment = supportFragmentManager .findFragmentById(R.id.street_view_panorama) as SupportStreetViewPanoramaFragment streetViewPanoramaFragment.getStreetViewPanoramaAsync(this)
জাভা
SupportStreetViewPanoramaFragment streetViewPanoramaFragment = (SupportStreetViewPanoramaFragment) getSupportFragmentManager() .findFragmentById(R.id.street_view_panorama); streetViewPanoramaFragment.getStreetViewPanoramaAsync(this);
ব্যবহারের জন্য প্রস্তুত StreetViewPanorama এর একটি নন-নাল ইনস্ট্যান্স পেতে onStreetViewPanoramaReady(StreetViewPanorama) কলব্যাক মেথডটি ব্যবহার করুন।
কোটলিন
override fun onStreetViewPanoramaReady(streetViewPanorama: StreetViewPanorama) { val sanFrancisco = LatLng(37.754130, -122.447129) streetViewPanorama.setPosition(sanFrancisco) }
জাভা
@Override public void onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) { LatLng sanFrancisco = new LatLng(37.754130, -122.447129); streetViewPanorama.setPosition(sanFrancisco); }
প্রাথমিক অবস্থা কনফিগার করার বিষয়ে আরও তথ্য
ম্যাপের মতো নয়, XML-এর মাধ্যমে স্ট্রিট ভিউ প্যানোরামার প্রাথমিক অবস্থা কনফিগার করা সম্ভব নয়। তবে, আপনি আপনার নির্দিষ্ট অপশনগুলো সম্বলিত একটি StreetViewPanoramaOptions অবজেক্ট পাস করে প্রোগ্রাম্যাটিকভাবে প্যানোরামাটি কনফিগার করতে পারেন।
- আপনি যদি একটি
StreetViewPanoramaFragmentব্যবহার করেন, তাহলে ফ্র্যাগমেন্টটি তৈরি করতে এবং আপনার নিজস্ব কনফিগার করা অপশনগুলো পাস করতেStreetViewPanoramaFragment.newInstance(StreetViewPanoramaOptions options)স্ট্যাটিক ফ্যাক্টরি মেথডটি ব্যবহার করুন। - আপনি যদি
StreetViewPanoramaViewব্যবহার করেন, তাহলেStreetViewPanoramaView(Context, StreetViewPanoramaOptions)কনস্ট্রাক্টরটি ব্যবহার করুন এবং আপনার নিজস্ব কনফিগার করা অপশনগুলো পাস করুন।
কোটলিন
val sanFrancisco = LatLng(37.754130, -122.447129) val view = StreetViewPanoramaView( this, StreetViewPanoramaOptions().position(sanFrancisco) )
জাভা
LatLng sanFrancisco = new LatLng(37.754130, -122.447129); StreetViewPanoramaView view = new StreetViewPanoramaView(this, new StreetViewPanoramaOptions().position(sanFrancisco));
StreetViewPanoramaFragment সম্পর্কে আরও তথ্য
StreetViewPanoramaFragment হলো অ্যান্ড্রয়েড Fragment ক্লাসের একটি সাবক্লাস, এবং এটি আপনাকে একটি অ্যান্ড্রয়েড ফ্র্যাগমেন্টে স্ট্রিট ভিউ প্যানোরামা স্থাপন করতে দেয়। StreetViewPanoramaFragment অবজেক্টগুলো প্যানোরামার ধারক হিসেবে কাজ করে এবং StreetViewPanorama অবজেক্টে অ্যাক্সেস প্রদান করে।
স্ট্রিটভিউ প্যানোরামা ভিউ
StreetViewPanoramaView , যা Android View ক্লাসের একটি সাবক্লাস, আপনাকে একটি Android View মধ্যে একটি Street View প্যানোরামা স্থাপন করতে দেয়। একটি View স্ক্রিনের একটি আয়তক্ষেত্রাকার অঞ্চলকে প্রতিনিধিত্ব করে এবং এটি Android অ্যাপ্লিকেশন ও উইজেটগুলির জন্য একটি মৌলিক ভিত্তি। অনেকটা StreetViewPanoramaFragment এর মতোই, StreetViewPanoramaView প্যানোরামার জন্য একটি কন্টেইনার হিসেবে কাজ করে এবং StreetViewPanorama অবজেক্টের মাধ্যমে মূল বৈশিষ্ট্যগুলি প্রকাশ করে। এই ক্লাসের ব্যবহারকারীদের অবশ্যই অ্যাক্টিভিটির সমস্ত লাইফসাইকেল মেথড (যেমন onCreate() , onDestroy() , onResume() , এবং onPause()) StreetViewPanoramaView ক্লাসের সংশ্লিষ্ট মেথডগুলিতে ফরওয়ার্ড করতে হবে।
ব্যবহারকারী-নিয়ন্ত্রিত বৈশিষ্ট্যটি কাস্টমাইজ করুন
ডিফল্টরূপে, স্ট্রিট ভিউ প্যানোরামা দেখার সময় ব্যবহারকারীর জন্য নিম্নলিখিত বৈশিষ্ট্যগুলি উপলব্ধ থাকে: প্যানিং, জুমিং এবং সংলগ্ন প্যানোরামায় যাওয়া। আপনি StreetViewPanorama এর মেথডগুলির মাধ্যমে ব্যবহারকারী-নিয়ন্ত্রিত জেসচারগুলি সক্রিয় এবং নিষ্ক্রিয় করতে পারেন। জেসচারটি নিষ্ক্রিয় থাকলেও প্রোগ্রাম্যাটিক পরিবর্তন করা সম্ভব।
প্যানোরামার অবস্থান নির্ধারণ করুন
স্ট্রিট ভিউ প্যানোরামার অবস্থান নির্ধারণ করতে, একটি LatLng পাস করে StreetViewPanorama.setPosition() কল করুন। আপনি ঐচ্ছিক প্যারামিটার হিসেবে radius এবং source ও পাস করতে পারেন।
স্ট্রিট ভিউ যে এলাকায় একটি মিলে যাওয়া প্যানোরামা খুঁজবে, সেই এলাকাটিকে প্রশস্ত বা সংকুচিত করতে চাইলে ব্যাসার্ধ (radius) ব্যবহার করা যায়। ব্যাসার্ধ ০ হওয়ার অর্থ হলো, প্যানোরামাটিকে অবশ্যই নির্দিষ্ট করা LatLng সাথে হুবহু সংযুক্ত থাকতে হবে। ডিফল্ট ব্যাসার্ধ হলো ৫০ মিটার। মিলে যাওয়া এলাকায় যদি একাধিক প্যানোরামা থাকে, তাহলে এপিআইটি সবচেয়ে ভালো মিলটি ফেরত দেবে।
যদি আপনি স্ট্রিট ভিউকে শুধুমাত্র বাইরের প্যানোরামা খোঁজার মধ্যে সীমাবদ্ধ রাখতে চান, তাহলে একটি উৎস সহায়ক হয়। ডিফল্টরূপে, স্ট্রিট ভিউ প্যানোরামাগুলো জাদুঘর, সরকারি ভবন, ক্যাফে এবং ব্যবসা প্রতিষ্ঠানের মতো স্থানের ভেতরে থাকতে পারে। মনে রাখবেন যে, নির্দিষ্ট করা অবস্থানের জন্য বাইরের প্যানোরামা নাও থাকতে পারে।
কোটলিন
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)
জাভা
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);
বিকল্পভাবে, আপনি StreetViewPanorama.setPosition() -এ একটি panoId পাস করে প্যানোরামা আইডির উপর ভিত্তি করে অবস্থান নির্ধারণ করতে পারেন।
সংলগ্ন প্যানোরামাগুলোর আইডি পেতে, প্রথমে getLocation() ব্যবহার করে একটি StreetViewPanoramaLocation অবজেক্ট সংগ্রহ করুন। এই অবজেক্টটিতে বর্তমান প্যানোরামার আইডি এবং StreetViewPanoramaLink অবজেক্টের একটি অ্যারে থাকে, যার প্রতিটিতে বর্তমানটির সাথে সংযুক্ত প্যানোরামার আইডি থাকে।
কোটলিন
streetViewPanorama.location.links.firstOrNull()?.let { link: StreetViewPanoramaLink -> streetViewPanorama.setPosition(link.panoId) }
জাভা
StreetViewPanoramaLocation location = streetViewPanorama.getLocation(); if (location != null && location.links != null) { streetViewPanorama.setPosition(location.links[0].panoId); }
জুম ইন এবং আউট করুন
আপনি StreetViewPanoramaCamera.zoom সেট করে প্রোগ্রাম্যাটিকভাবে জুম লেভেল পরিবর্তন করতে পারেন। জুম ১.০-এ সেট করলে ছবিটি ২ গুণ বিবর্ধিত হবে।
নিম্নলিখিত কোড স্নিপেটটি StreetViewPanoramaCamera.Builder() ব্যবহার করে বিদ্যমান ক্যামেরার টিল্ট ও বেয়ারিং সহ একটি নতুন ক্যামেরা তৈরি করে, এবং একই সাথে জুম পঞ্চাশ শতাংশ বাড়িয়ে দেয়।
কোটলিন
val zoomBy = 0.5f val camera = StreetViewPanoramaCamera.Builder() .zoom(streetViewPanorama.panoramaCamera.zoom + zoomBy) .tilt(streetViewPanorama.panoramaCamera.tilt) .bearing(streetViewPanorama.panoramaCamera.bearing) .build()
জাভা
float zoomBy = 0.5f; StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder() .zoom(streetViewPanorama.getPanoramaCamera().zoom + zoomBy) .tilt(streetViewPanorama.getPanoramaCamera().tilt) .bearing(streetViewPanorama.getPanoramaCamera().bearing) .build();
ক্যামেরার অভিমুখ (দৃষ্টিভঙ্গি) নির্ধারণ করুন।
আপনি StreetViewPanoramaCamera তে বেয়ারিং এবং টিল্ট সেট করে স্ট্রিট ভিউ ক্যামেরার ওরিয়েন্টেশন নির্ধারণ করতে পারেন।
- ভার বহন
- ক্যামেরাটি যে দিকে নির্দেশ করছে, তা ক্যামেরা লোকাসের চারপাশে প্রকৃত উত্তর থেকে ঘড়ির কাঁটার দিকে ডিগ্রিতে নির্দিষ্ট করা হয়। প্রকৃত উত্তর হলো ০, পূর্ব হলো ৯০, দক্ষিণ হলো ১৮০, পশ্চিম হলো ২৭০।
- ঝোঁক
- Y-অক্ষ বরাবর উপরে বা নিচে কাত করা যায়। এর পরিসর হলো -৯০ থেকে ০ পর্যন্ত, যেখানে -৯০ মানে সোজা নিচের দিকে তাকানো, ০ মানে দিগন্তের কেন্দ্রে থাকা এবং ৯০ মানে সোজা উপরের দিকে তাকানো। এই তারতম্য পরিমাপ করা হয় ক্যামেরার প্রাথমিক ডিফল্ট পিচ থেকে, যা প্রায়শই (তবে সবসময় নয়) সমতল অনুভূমিক হয়। উদাহরণস্বরূপ, একটি পাহাড় থেকে তোলা ছবির ডিফল্ট পিচ সম্ভবত অনুভূমিক হবে না।
নিম্নলিখিত কোড স্নিপেটটি StreetViewPanoramaCamera.Builder() ব্যবহার করে বিদ্যমান ক্যামেরার জুম ও টিল্ট সহ একটি নতুন ক্যামেরা তৈরি করে, এবং একই সাথে এর বেয়ারিং ৩০ ডিগ্রি বাম দিকে পরিবর্তন করে।
কোটলিন
val panBy = 30f val camera = StreetViewPanoramaCamera.Builder() .zoom(streetViewPanorama.panoramaCamera.zoom) .tilt(streetViewPanorama.panoramaCamera.tilt) .bearing(streetViewPanorama.panoramaCamera.bearing - panBy) .build()
জাভা
float panBy = 30; StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder() .zoom(streetViewPanorama.getPanoramaCamera().zoom) .tilt(streetViewPanorama.getPanoramaCamera().tilt) .bearing(streetViewPanorama.getPanoramaCamera().bearing - panBy) .build();
নিম্নলিখিত কোড অংশটি ক্যামেরাটিকে ৩০ ডিগ্রি উপরের দিকে কাত করে।
কোটলিন
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()
জাভা
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() কল করুন। অ্যানিমেশনটি বর্তমান ক্যামেরা অ্যাট্রিবিউট এবং নতুন ক্যামেরা অ্যাট্রিবিউটের মধ্যে ইন্টারপোলেট করে। আপনি যদি অ্যানিমেশন ছাড়া সরাসরি ক্যামেরায় যেতে চান, তাহলে ডিউরেশন ০ সেট করতে পারেন।
কোটলিন
// 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)
জাভা
// 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() ব্যবহার করে উপরের অ্যানিমেশনটিকে প্রতি ২০০০ মিলিসেকেন্ডে চালানোর জন্য শিডিউল করলে যে ফলাফল পাওয়া যায়, তা নিচের ছবিতে দেখানো হলো:
