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

প্ল্যাটফর্ম বেছে নিন: 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 ব্যবহার করে GMSPanoramaService থেকে GMSPanorama-এর অনুরোধ করতে পারবেন। ফলাফল হিসেবে পাওয়া অবজেক্টে মেটা-ডেটার দুটি অংশই থাকবে, এর পাশাপাশি কাছাকাছি প্যানোরামার লিঙ্কগুলির একটি অ্যারেও থাকবে।

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

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 ভিউয়ার যোগ করা যায়।

সুইফ্ট

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: পদ্ধতি ব্যবহার করে একসাথে সব জেসচার চালু বা বন্ধ করতে পারবেন।

সুইফ্ট

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

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

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

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

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

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

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

সুইফ্ট

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 তৈরি করা হতে পারে।

সুইফ্ট

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 অবজেক্ট ম্যাপ মার্কার দেখাতে পারে। আপনি একই GMSMarker অবজেক্টকে GMSMapView বা GMSPanoramaView অবজেক্টে ব্যবহার করতে পারবেন, এর জন্য আপনাকে সংশ্লিষ্ট প্রপার্টি সেট করতে হবে:

সুইফ্ট

// 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-এ সেট করুন।

সুইফ্ট

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

ইভেন্ট

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