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

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

Google Maps Street View-এর মাধ্যমে আপনি ৩৬০-ডিগ্রি, স্ট্রিট-লেভেল ছবি ব্যবহার করে সারা বিশ্বের বিভিন্ন জায়গা এক্সপ্লোর করতে পারবেন। আপনি বিশ্বের ল্যান্ডমার্ক এক্সপ্লোর করতে, প্রাকৃতিক আশ্চর্য দেখতে, ট্রিপ নেভিগেট করতে বা আপনার ব্যবসার বাইরের অংশ দেখাতে পারবেন।

এক নজরে

Google Street View, কভারেজ এরিয়া জুড়ে নির্দিষ্ট রাস্তা থেকে প্যানোরামিক ৩৬০-ডিগ্রি ভিউ প্রদান করে। SDK-এর মাধ্যমে উপলভ্য কভারেজ iOS অ্যাপের জন্য Google Maps বা https://maps.google.com/-এর মতোই। আপনি Street View সম্পর্কে আরও পড়তে এবং ইন্ট্যার‍্যাক্টিভ ম্যাপে কাজ করে এমন এলাকা দেখতে পারেন, Street View সম্পর্কে লিঙ্কে যান।

iOS-এর জন্য Maps SDK, Google Maps Street View-তে ব্যবহৃত ছবি পাওয়া ও ম্যানিপুলেট করার জন্য Street View পরিষেবা প্রদান করে। Street View ছবি প্যানোরামা হিসেবে দেখানো হয় এবং Street View ভিউয়ারের মধ্যে থেকে দেখা হয় — এটি GMSPanoramaView ধরনের অবজেক্ট।

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

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

Street View প্যানোরামা GMSPanoramaView অবজেক্টের মাধ্যমে দেখা যায়। এই অবজেক্ট এমন একটি ভিউয়ার প্রদান করে যা প্যানোরামাকে একটি গোলক হিসেবে রেন্ডার করবে, যার কেন্দ্রে একটি ক্যামেরা থাকবে। আপনি প্রোগ্রাম্যাটিক উপায়ে ক্যামেরার ওরিয়েন্টেশন কন্ট্রোল করতে পারবেন, সেইসাথে ভিউয়ার কাস্টমাইজ করার জন্য একাধিক প্রপার্টিও কন্ট্রোল করতে পারবেন।

Street View ডেটা অ্যাক্সেস করা

Street View প্যানোরামা দুটি মেটাডেটার মধ্যে একটি দিয়ে শনাক্ত করা হয়:

panoramaID
Street View প্যানোরামার অনন্য আইডি। এটি panoramaID সময়ের সাথে সাথে পরিবর্তিত হতে পারে এবং দীর্ঘমেয়াদী বা হার্ড-কোডেড রেফারেন্স হিসেবে উপযুক্ত নয়। panoramaID বিভিন্ন Street View ছবি অ্যাক্সেস করার জন্য প্রোগ্রাম্যাটিক অ্যাক্সেস প্রদান করতে সবচেয়ে ভালভাবে ব্যবহার করা হয়।
coordinate
এই ছবির সুনির্দিষ্ট লোকেশন, যা CLLocationCoordinate2D হিসেবে দেখানো হয়েছে। প্যানোরামা লোকেশনের পারসিস্টেন্ট স্টোরেজের জন্য অথবা ম্যাপে ব্যবহারকারীর অ্যাকশনকে Street View ছবিতে অনুবাদ করতে coordinate ব্যবহার করুন।

panoramaID এবং coordinate, দুটিই GMSPanorama অবজেক্টের প্রপার্টি হিসেবে স্টোর করা হয়। আপনি coordinate বা panoramaID ব্যবহার করে GMSPanorama-এর জন্য অনুরোধ করতে পারেন GMSPanoramaService। ফলাফল হিসেবে পাওয়া অবজেক্টে মেটা-ডেটার দুটি অংশই থাকবে, এর পাশাপাশি কাছাকাছি প্যানোরামার লিঙ্কগুলির একটি অ্যারেও থাকবে।

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

Street View প্যানোরামার লোকেশন কোঅর্ডিনেটের ভিত্তিতে সেট করা যেতে পারে।

  • moveNearCoordinate পদ্ধতিটি স্থানাঙ্কের কাছাকাছি একটি প্যানোরামার অনুরোধ করে।

  • moveNearCoordinate:radius পদ্ধতিটি একই রকম, তবে এটি আপনাকে স্থানাঙ্কের চারপাশে মিটারে একটি সার্চ ব্যাসার্ধ নির্দিষ্ট করতে দেয়।

  • moveNearCoordinate:source পদ্ধতি আপনাকে একটি সোর্স নির্দিষ্ট করতে দেয়। আপনি যদি Street View-কে শুধুমাত্র বাইরে তোলা প্যানোরামা দেখার মধ্যে সীমাবদ্ধ রাখতে চান, তাহলে সোর্সটি সহায়ক হবে। সাধারণত, লোকেশনের প্যানোরামা হয় ভিতরে বা বাইরে থেকে তোলা হয়। মনে রাখবেন, নির্দিষ্ট লোকেশনের জন্য আউটডোর প্যানোরামা নাও থাকতে পারে।

  • moveNearCoordinate:radius:source পদ্ধতির মাধ্যমে আপনি ব্যাসার্ধ ও সোর্স, দুটিই নির্দিষ্ট করতে পারবেন।

Street View ছবি দেখা

Street View ভিউয়ার যোগ করা

দর্শক যোগ করার প্রাথমিক ধাপগুলি হল:

  1. (একবার) SDK পেতে, কী পেতে এবং প্রয়োজনীয় ফ্রেমওয়ার্ক যোগ করতে শুরু করা বিভাগে উল্লেখ করা ধাপগুলি অনুসরণ করুন।
  2. ViewController তৈরি বা আপডেট করুন। এই ভিউ কন্ট্রোলার দেখা গেলে প্যানোরামা দেখানো হলে, loadView পদ্ধতির মধ্যে এটি তৈরি করতে ভুলবেন না।
  3. GMSPanoramaView initWithFrame: পদ্ধতি ব্যবহার করে GMSPanoramaView ক্লাস তৈরি ও ইনস্ট্যান্টিয়েট করুন। এটি যদি ভিউ কন্ট্রোলারের একমাত্র ভিউ হিসেবে ব্যবহার করা হয়, তাহলে CGRectZero-কে ম্যাপের ফ্রেম হিসেবে ব্যবহার করা যেতে পারে — ম্যাপের সাইজ অটোমেটিক পরিবর্তন করা হবে।
  4. GMSPanoramaView অবজেক্টকে ভিউ কন্ট্রোলারের ভিউ হিসেবে সেট করুন। যেমন, self.view = panoView;।
  5. moveNearCoordinate:-এর মতো পদ্ধতি ব্যবহার করে Street View ছবির লোকেশন সেট করুন।

নিচের উদাহরণে একটি অ্যাপে Street View ভিউয়ার যোগ করা হয়েছে।

Swift

import GoogleMaps

class StreetView: UIViewController {

  override func loadView() {
    let panoView = GMSPanoramaView(frame: .zero)
    self.view = panoView

    panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312))
  }
}
      

Objective-C

#import "StreetView.h"
@import GoogleMaps;

@interface StreetView ()

@end

@implementation StreetView

- (void)loadView {
  GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
  self.view = panoView;

  [panoView moveNearCoordinate:CLLocationCoordinate2DMake(-33.732, 150.312)];
}

@end
      

ভিউয়ার কাস্টমাইজ করুন

কোন কোন জেসচার উপলভ্য থাকবে তা সীমিত করে আপনি ভিউয়ার কাস্টমাইজ করতে পারবেন। সাধারণত, প্যান করা, জুম করা এবং আশেপাশের প্যানোরামায় যাওয়া, এই সবকটিই চালু করা থাকে। GMSPanoramaView-এর প্রপার্টির মাধ্যমে স্বতন্ত্র জেসচার নিয়ন্ত্রণ করা হয়। এইসব প্রপার্টি ব্যবহারকারী নিয়ন্ত্রিত জেসচার চালু বা বন্ধ করে দেয়; জেসচার বন্ধ করা থাকলেও প্রোগ্রাম সংক্রান্ত পরিবর্তন করা যায়।

orientationGestures
ব্যবহারকারী ট্যাপ বা টেনে আনার মাধ্যমে ক্যামেরার ওরিয়েন্টেশন পরিবর্তন করতে পারবেন কিনা। ক্যামেরার ওরিয়েন্টেশন পরিবর্তন বন্ধ করতে NO-এ সেট করুন।
zoomGestures
ব্যবহারকারী পিঞ্চ করে জুম করতে পারবেন কিনা। জুম বন্ধ করতে NO-এ সেট করুন।
navigationGestures
ব্যবহারকারী কোন প্যানোরামা দেখতে পাবেন তা পরিবর্তন করতে পারবেন কিনা। ব্যবহারকারী নেভিগেশন লিঙ্কে একবার ট্যাপ করতে পারেন অথবা প্যানোরামা পরিবর্তন করতে ভিউতে ডবল ট্যাপ করতে পারেন। নেভিগেশন পরিবর্তন বন্ধ করতে NO-এ সেট করুন।

আপনি setAllGesturesEnabled: পদ্ধতির মাধ্যমে সব জেসচার একসাথে চালু বা বন্ধ করতে পারবেন।

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

URL স্কিমের মাধ্যমে Street View লঞ্চ করা

iOS-এর জন্য Google Maps অ্যাপ্লিকেশনের মধ্যে থেকে Google Street View ছবি দেখা যায়। mapmode প্যারামিটারকে streetview হিসেবে সেট করে আপনি comgooglemaps URL স্কিমের মাধ্যমে iOS অ্যাপ্লিকেশনের জন্য Google Maps-কে street view মোডে লঞ্চ করতে পারবেন। Street View চালু করবে এমন একটি URL-এর উদাহরণ নিচে দেখানো হল। আরও তথ্যের জন্য, URL স্কিম ডকুমেন্টেশন দেখুন।

comgooglemaps://?center=46.414382,10.013988&mapmode=streetview

Street View লোকেশন ও পয়েন্ট-অফ-ভিউ (POV)

GMSPanoramaCamera আপনাকে Street View ক্যামেরার পয়েন্ট-অফ-ভিউকে হেডিং, পিচ ও জুমের কম্বিনেশন হিসেবে সেট করার অনুমতি দেয়।

নিচের স্নিপেট সেট ক্যামেরা দক্ষিণ দিকে এবং সামান্য নিচের দিকে সেট করবে।

Swift

panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
      

Objective-C

panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

সজ্জা

Street View লোকেশন কোনও ছবির জন্য ক্যামেরা ফোকাসের প্লেসমেন্ট নির্ধারণ করে, কিন্তু এটি সেই ছবির জন্য ক্যামেরার ওরিয়েন্টেশন নির্ধারণ করে না। সেই উদ্দেশ্যে, GMSOrientation অবজেক্ট দুটি প্রপার্টি সংজ্ঞায়িত করে:

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

জুম করুন

Street View-তে জুম ব্যবহার করে ছবির বিভিন্ন লেভেলের বিবরণ দেখা যায়। আপনি প্রোগ্রাম্যাটিক্যালি জুম লেভেল সেট করতে পারেন অথবা ব্যবহারকারীরা ভিউয়ারে পিঞ্চ করে জুম করার মাধ্যমে লেভেল পরিবর্তন করতে পারেন।

ক্যামেরা সরানো হচ্ছে

GMSPanoramaView তৈরি করার পরে, এতে কনফিগার করা বা ডিফল্ট ক্যামেরা থাকলে, আপনি একাধিক উপায়ে এটি পরিবর্তন করতে পারবেন। আপনি ক্যামেরা পরিবর্তন করলে, ক্যামেরার ফলে হওয়া মুভমেন্ট অ্যানিমেট করার বিকল্প পাবেন। অ্যানিমেশনটি বর্তমান ক্যামেরা অ্যাট্রিবিউট এবং নতুন ক্যামেরা অ্যাট্রিবিউটের মধ্যে ইন্টারপোলেট করে।

আপনি GMSPanoramaCamera অবজেক্ট পরিবর্তন করতে পারবেন এবং এটি GMSPanoramaView-এর camera প্রপার্টিতে সেট করতে পারবেন। এটি কোনও অ্যানিমেশন ছাড়াই নতুন দৃষ্টিভঙ্গিতে ক্যামেরা স্ন্যাপ করবে। ওরিয়েন্টেশন ও জুমের যেকোনও কম্বিনেশন কনফিগার করতে একটি GMSCameraPosition তৈরি করা হতে পারে।

Swift

panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
      

Objective-C

panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

আপনি GMSPanoramaView-এর animateToCamera:animationDuration: মেথড কল করে ট্রানজিশন অ্যানিমেট করতে পারবেন। এছাড়াও, আপনি Core Animation ব্যবহার করে ক্যামেরা কন্ট্রোল করতে পারবেন। এটি GMSPanoramaView, GMSPanoramaLayer-এ কাস্টম CALayer-এর মাধ্যমে উপলভ্য করা হয়েছে।

Street View-এর মধ্যে মার্কার

GMSPanoramaView অবজেক্ট ম্যাপ মার্কার দেখাতে পারে। আপনি সংশ্লিষ্ট প্রপার্টি সেট করে GMSMapView বা GMSPanoramaView অবজেক্টে একই GMSMarker অবজেক্ট ব্যবহার করতে পারেন:

Swift

// Create a marker at the Eiffel Tower
let position = CLLocationCoordinate2D(latitude: 48.858, longitude: 2.294)
let marker = GMSMarker(position: position)

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView

// Add the marker to a GMSMapView object named mapView
marker.map = mapView
      

Objective-C

// Create a marker at the Eiffel Tower
CLLocationCoordinate2D position = CLLocationCoordinate2DMake(48.858,2.294);
GMSMarker *marker = [GMSMarker markerWithPosition:position];

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView;

// Add the marker to a GMSMapView object named mapView
marker.map = mapView;
      

মার্কারের অবস্থান এবং GMSCameraView-এর লোকেশনের মধ্যে দূরত্বের ফাংশন হিসেবে মার্কারের সাইজ স্কেল করা হবে। এই দূরত্ব খুব বেশি হয়ে গেলে, মার্কারটি ডিসপ্লে করার জন্য খুব ছোট হয়ে যাবে এবং সেটি আর দেখা যাবে না।

GMSPanoramaView থেকে এটি সরাতে panoramaView প্রপার্টি nil-এ সেট করুন।

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

ইভেন্ট

Street View প্যানোরামায় ঘটে যাওয়া ইভেন্ট আপনি শুনতে পাবেন, যেমন কোনও ব্যবহারকারী প্যানোরামায় ট্যাপ করলে। ইভেন্ট শুনতে, আপনাকে অবশ্যই GMSPanoramaViewDelegate প্রোটোকল প্রয়োগ করতে হবে। GMSPanoramaViewDelegate-এ ইভেন্ট সংক্রান্ত সম্পূর্ণ গাইড এবং পদ্ধতির তালিকা দেখুন।