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

প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস জাভাস্ক্রিপ্ট

Google মানচিত্র রাস্তার দৃশ্য আপনাকে 360-ডিগ্রী, রাস্তার-স্তরের চিত্রগুলির মাধ্যমে বিশ্বের স্থানগুলি অন্বেষণ করতে দেয়৷ আপনি বিশ্বের ল্যান্ডমার্ক অন্বেষণ করতে পারেন, প্রাকৃতিক আশ্চর্য দেখতে পারেন, একটি ট্রিপ নেভিগেট করতে পারেন, বা আপনার ব্যবসার বাইরে দেখাতে পারেন।

ওভারভিউ

Google রাস্তার দৃশ্য তার কভারেজ এলাকা জুড়ে মনোনীত রাস্তা থেকে প্যানোরামিক 360-ডিগ্রি ভিউ প্রদান করে। SDK-এর মাধ্যমে উপলব্ধ কভারেজ iOS অ্যাপের জন্য Google Maps বা https://maps.google.com/ মতোই। আপনি রাস্তার দৃশ্য সম্পর্কে আরও পড়তে পারেন এবং একটি ইন্টারেক্টিভ মানচিত্রে সমর্থিত এলাকাগুলি দেখতে পারেন, রাস্তার দৃশ্য সম্পর্কে

IOS-এর জন্য Maps SDK Google Maps রাস্তার দৃশ্যে ব্যবহৃত চিত্রগুলি প্রাপ্ত এবং ম্যানিপুলেট করার জন্য একটি রাস্তার দৃশ্য পরিষেবা প্রদান করে৷ রাস্তার দৃশ্য চিত্রগুলি প্যানোরামা হিসাবে ফেরত দেওয়া হয় এবং রাস্তার দৃশ্য ভিউয়ারের মধ্যে থেকে দেখা হয় — একটি বস্তু GMSPanoramaView টাইপ।

রাস্তার দৃশ্য প্যানোরামা

প্রতিটি রাস্তার দৃশ্য প্যানোরামা হল একটি ছবি, বা ছবির সেট, যা একটি একক অবস্থান থেকে সম্পূর্ণ 360-ডিগ্রি ভিউ প্রদান করে৷ চিত্রগুলি ইকুইরেক্ট্যাঙ্গুলার (প্লেট ক্যারি) প্রজেকশনের সাথে সামঞ্জস্যপূর্ণ, যাতে 360 ডিগ্রি অনুভূমিক দৃশ্য (একটি সম্পূর্ণ মোড়ানো) এবং 180 ডিগ্রি উল্লম্ব দৃশ্য (সরাসরি থেকে সোজা নীচে) রয়েছে। ফলস্বরূপ 360 ডিগ্রী প্যানোরামা একটি গোলকের উপর একটি অভিক্ষেপকে সংজ্ঞায়িত করে যাতে সেই গোলকের দ্বি-মাত্রিক পৃষ্ঠে মোড়ানো চিত্রটি রয়েছে।

রাস্তার দৃশ্য প্যানোরামাগুলি GMSPanoramaView অবজেক্টের সাথে দেখা যায়৷ এই বস্তুটি একটি দর্শক প্রদান করে যা প্যানোরামাটিকে একটি গোলক হিসাবে রেন্ডার করবে, যার কেন্দ্রে একটি ক্যামেরা থাকবে৷ আপনি প্রোগ্রাম্যাটিকভাবে ক্যামেরার অভিযোজন নিয়ন্ত্রণ করতে পারেন, সেইসাথে দর্শককে কাস্টমাইজ করে বেশ কয়েকটি বৈশিষ্ট্য।

রাস্তার দৃশ্য ডেটা অ্যাক্সেস করা

রাস্তার দৃশ্য প্যানোরামাগুলি মেটা-ডেটার দুটি অংশের একটি দ্বারা চিহ্নিত করা হয়:

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

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

প্যানোরামার অবস্থান নির্ধারণ করা হচ্ছে

স্থানাঙ্কের উপর ভিত্তি করে রাস্তার দৃশ্য প্যানোরামার অবস্থান নির্ধারণ করা যেতে পারে।

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

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

  • moveNearCoordinate:source পদ্ধতি আপনাকে একটি উৎস নির্দিষ্ট করতে দেয়। আপনি যদি রাস্তার দৃশ্যকে শুধুমাত্র বাইরের প্যানোরামাগুলি দেখার জন্য সীমাবদ্ধ করতে চান তবে একটি উত্স দরকারী৷ ডিফল্টরূপে, অবস্থানের প্যানোরামা হয় ভিতরে বা বাইরে। উল্লেখ্য যে বহিরঙ্গন প্যানোরামাগুলি নির্দিষ্ট অবস্থানের জন্য বিদ্যমান নাও থাকতে পারে৷

  • moveNearCoordinate:radius:source পদ্ধতি আপনাকে একটি ব্যাসার্ধ এবং একটি উৎস উভয়ই নির্দিষ্ট করতে দেয়।

রাস্তার দৃশ্যের ছবি দেখা হচ্ছে

একটি রাস্তার দৃশ্য দর্শক যোগ করা হচ্ছে

ভিউয়ার যোগ করার প্রাথমিক ধাপ হল:

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

নীচের উদাহরণটি একটি অ্যাপে একটি রাস্তার দৃশ্য দর্শক যোগ করে।

সুইফট

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))
  }
}
      

উদ্দেশ্য-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)
      

উদ্দেশ্য-C

[panoView setAllGesturesEnabled:NO];
      

URL স্কিম সহ রাস্তার দৃশ্য চালু করা হচ্ছে

Google রাস্তার দৃশ্যের চিত্রগুলি iOS অ্যাপ্লিকেশনের জন্য Google মানচিত্রের মধ্যে থেকে দেখা যায়৷ আপনি streetview mapmode প্যারামিটার সেট করে comgooglemaps URL স্কিম সহ রাস্তার দৃশ্য মোডে iOS অ্যাপ্লিকেশনের জন্য Google মানচিত্র চালু করতে পারেন। একটি URL এর একটি উদাহরণ যা রাস্তার দৃশ্য চালু করবে নীচে প্রদর্শিত হবে৷ আরও তথ্যের জন্য, URL স্কিম ডকুমেন্টেশন পড়ুন।

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

রাস্তার দৃশ্যের অবস্থান এবং পয়েন্ট-অফ-ভিউ (POV)

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

নীচের স্নিপেট সেটগুলি ক্যামেরাটিকে দক্ষিণে এবং সামান্য নীচের দিকে অভিমুখী করবে৷

সুইফট

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

উদ্দেশ্য-C

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

ওরিয়েন্টেশন

রাস্তার দৃশ্যের অবস্থান একটি ছবির জন্য ক্যামেরা ফোকাসের স্থান নির্ধারণ করে, কিন্তু এটি সেই ছবির জন্য ক্যামেরার অভিযোজন সংজ্ঞায়িত করে না। সেই উদ্দেশ্যে, GMSOrientation অবজেক্ট দুটি বৈশিষ্ট্য সংজ্ঞায়িত করে:

  • heading সত্য উত্তর থেকে আপেক্ষিক ডিগ্রীতে ক্যামেরা লোকাসের চারপাশে ঘূর্ণন কোণকে সংজ্ঞায়িত করে। শিরোনামগুলি ঘড়ির কাঁটার দিকে পরিমাপ করা হয়: প্রকৃত উত্তর হল 0, পূর্ব হল 90, দক্ষিণ হল 180, পশ্চিম হল 270৷
  • pitch (ডিফল্ট 0 ) ক্যামেরার প্রাথমিক ডিফল্ট পিচ থেকে কোণের বৈচিত্র "উপর" বা "নিচে" সংজ্ঞায়িত করে, যা প্রায়শই (কিন্তু সর্বদা নয়) সমতল অনুভূমিক হয়। (উদাহরণস্বরূপ, একটি পাহাড়ে তোলা একটি চিত্র সম্ভবত একটি ডিফল্ট পিচ প্রদর্শন করবে যা অনুভূমিক নয়।) পিচ কোণগুলি ধনাত্মক মানগুলির সাথে পরিমাপ করা হয় (+90 ডিগ্রি পর্যন্ত সোজা উপরে এবং ডিফল্ট পিচের অর্থোগোনাল) এবং নেতিবাচক মানগুলি নীচের দিকে তাকানো হয়। (সরাসরি নিচে -90 ডিগ্রী এবং ডিফল্ট পিচে অর্থোগোনাল)।

জুম

রাস্তার দৃশ্য জুম ব্যবহারের মাধ্যমে বিভিন্ন স্তরের চিত্র বিস্তারিত সমর্থন করে। আপনি প্রোগ্রাম্যাটিকভাবে জুম স্তর সেট করতে পারেন, অথবা ব্যবহারকারীরা জুম করতে চিমটি করে দর্শকের স্তর পরিবর্তন করতে পারেন।

ক্যামেরা সরানো

একবার আপনি GMSPanoramaView তৈরি করেছেন, এবং এটিতে একটি কনফিগার করা বা ডিফল্ট ক্যামেরা আছে, আপনি এটিকে বিভিন্ন উপায়ে পরিবর্তন করতে পারেন। আপনি যখন ক্যামেরা পরিবর্তন করেন, আপনার কাছে ফলে ক্যামেরা মুভমেন্ট অ্যানিমেট করার বিকল্প থাকে। অ্যানিমেশন বর্তমান ক্যামেরা বৈশিষ্ট্য এবং নতুন ক্যামেরা বৈশিষ্ট্য মধ্যে interpolates.

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

সুইফট

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

উদ্দেশ্য-C

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

আপনি GMSPanoramaView এর animateToCamera:animationDuration: পদ্ধতিতে কল করে একটি ট্রানজিশন অ্যানিমেট করতে পারেন। উপরন্তু, আপনি কোর অ্যানিমেশন ব্যবহার করে ক্যামেরা নিয়ন্ত্রণ করতে পারেন। এটি GMSPanoramaView , GMSPanoramaLayer এ কাস্টম CALayer মাধ্যমে উপলব্ধ করা হয়েছে।

রাস্তার দৃশ্যের মধ্যে চিহ্নিতকারী

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
      

উদ্দেশ্য-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
      

উদ্দেশ্য-C

marker.panoramaView = nil;
      

ঘটনা

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