सड़क दृश्य

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript

Google Maps Street View की मदद से, दुनिया भर की जगहों को 360 डिग्री व्यू में देखा जा सकता है. साथ ही, स्ट्रीट-लेवल की तस्वीरें भी देखी जा सकती हैं. इसकी मदद से, दुनिया भर की मशहूर जगहों को एक्सप्लोर किया जा सकता है, कुदरती अजूबे देखे जा सकते हैं, किसी यात्रा के लिए नेविगेट किया जा सकता है या अपने कारोबार की बाहरी झलक दिखाई जा सकती है.

खास जानकारी

Google Street View, अपने कवरेज वाले इलाके में मौजूद चुनिंदा सड़कों के 360 डिग्री पैनोरामिक व्यू दिखाता है. एसडीके टूल के ज़रिए उपलब्ध कवरेज, iOS के लिए Google Maps ऐप्लिकेशन या https://maps.google.com/ के कवरेज के बराबर होता है. Street View के बारे में ज़्यादा जानने और इंटरैक्टिव मैप पर, Street View की सुविधा वाले इलाकों को देखने के लिए, Street View के बारे में जानकारी पर जाएं.

iOS के लिए Maps SDK टूल, Street View की सेवा उपलब्ध कराता है. इसकी मदद से, Google Maps Street View में इस्तेमाल की गई तस्वीरों को हासिल किया जा सकता है और उनमें बदलाव किया जा सकता है. Street View की तस्वीरों को पैनोरामा के तौर पर दिखाया जाता है. इन्हें Street View व्यूअर में देखा जाता है. यह GMSPanoramaView टाइप का ऑब्जेक्ट होता है.

Street View पैनोरामा

हर Street View पैनोरामा एक इमेज या इमेज का सेट होता है. इससे किसी एक जगह का 360 डिग्री व्यू मिलता है. इमेज, इक्विरैक्टैंगुलर (प्लेट कैरे) प्रोजेक्शन के मुताबिक होती हैं. इनमें 360 डिग्री का हॉरिज़ॉन्टल व्यू (पूरी तरह से रैप-अराउंड) और 180 डिग्री का वर्टिकल व्यू (सीधे ऊपर से सीधे नीचे तक) होता है. इससे मिलने वाला 360 डिग्री पैनोरामा, किसी स्फ़ीयर पर प्रोजेक्शन तय करता है. इसमें इमेज को उस स्फ़ीयर की दो डाइमेंशन वाली सतह पर रैप किया जाता है.

Street View पैनोरामा को GMSPanoramaView ऑब्जेक्ट की मदद से देखा जा सकता है. यह ऑब्जेक्ट एक व्यूअर उपलब्ध कराता है. यह पैनोरामा को स्फ़ीयर के तौर पर रेंडर करेगा. इसके बीच में एक कैमरा होगा. आपके पास प्रोग्राम के ज़रिए कैमरे के ओरिएंटेशन को कंट्रोल करने के साथ-साथ, व्यूअर को पसंद के मुताबिक बनाने के लिए कई प्रॉपर्टी को कंट्रोल करने का विकल्प होता है.

Street View का डेटा ऐक्सेस करना

Street View पैनोरामा की पहचान, मेटाडेटा के इन दो हिस्सों में से किसी एक से की जाती है:

panoramaID
Street View पैनोरामा का यूनीक आईडी. This panoramaID may change over time, and is not suitable as a long term, or hard-coded, reference. panoramaID का इस्तेमाल, अलग-अलग Street View इमेज को प्रोग्राम के ज़रिए ऐक्सेस करने के लिए किया जाता है.
coordinate
यह इमेज की सटीक जगह है. इसे CLLocationCoordinate2D के तौर पर दिखाया जाता है. पैनोरामा की जगह को परमानेंट तौर पर सेव करने या मैप पर उपयोगकर्ता की कार्रवाइयों को Street View इमेज में बदलने के लिए, coordinate का इस्तेमाल करें.

panoramaID और coordinate, दोनों को GMSPanorama ऑब्जेक्ट की प्रॉपर्टी के तौर पर सेव किया जाता है. आप GMSPanoramaService से GMSPanorama का अनुरोध, coordinate या panoramaID का इस्तेमाल करके कर सकते हैं. इससे मिलने वाले ऑब्जेक्ट में, मेटाडेटा के दोनों हिस्से और आस-पास के पैनोरामा के लिंक की एक कलेक्शन शामिल होगी.

पैनोरामा की जगह सेट करना

Street View पैनोरामा की जगह, को-ऑर्डिनेट के आधार पर सेट की जा सकती है.

  • moveNearCoordinate तरीके से, को-ऑर्डिनेट के आस-पास का पैनोरामा दिखाने का अनुरोध किया जाता है.

  • moveNearCoordinate:radius तरीका भी इसी तरह काम करता है. हालांकि, इसकी मदद से, को-ऑर्डिनेट के आस-पास, मीटर में खोज का दायरा तय किया जा सकता है.

  • moveNearCoordinate:source तरीके से, सोर्स तय किया जा सकता है. अगर आपको Street View को सिर्फ़ बाहर के पैनोरामा खोजने तक सीमित रखना है, तो सोर्स काम का हो सकता है. डिफ़ॉल्ट रूप से, जगहों के पैनोरामा अंदर या बाहर के होते हैं. ध्यान दें कि तय की गई जगह के लिए, बाहर के पैनोरामा मौजूद नहीं हो सकते.

  • moveNearCoordinate:radius:source तरीके से, दायरा और सोर्स, दोनों तय किए जा सकते हैं.

Street View की तस्वीरें देखना

Street View व्यूअर जोड़ना

व्यूअर जोड़ने के लिए, यहां बुनियादी चरण दिए गए हैं:

  1. (सिर्फ़ एक बार) एसडीके टूल पाने, कुंजी हासिल करने, और ज़रूरी फ़्रेमवर्क जोड़ने के लिए, शुरू करना लेख में दिया गया तरीका अपनाएं.
  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];
      

यूआरएल स्कीम की मदद से Street View लॉन्च करना

Street View की तस्वीरें, iOS के लिए Google Maps ऐप्लिकेशन में देखी जा सकती हैं. mapmode पैरामीटर को streetview पर सेट करके, comgooglemaps यूआरएल स्कीम की मदद से, iOS के लिए Google Maps ऐप्लिकेशन को Street View मोड में लॉन्च किया जा सकता है. Street View लॉन्च करने वाले यूआरएल का एक उदाहरण यहां दिया गया है. ज़्यादा जानकारी के लिए, यूआरएल स्कीम दस्तावेज़ देखें.

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

Street View की जगहें और पॉइंट-ऑफ़-व्यू (पीओवी)

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 से, ट्रू नॉर्थ से डिग्री में कैमरे के लोकस के आस-पास रोटेशन ऐंगल तय होता है. हेडिंग को क्लॉकवाइज़ मापा जाता है: ट्रू नॉर्थ 0, ईस्ट 90, साउथ 180, वेस्ट 270.
  • pitch (डिफ़ॉल्ट 0) से, कैमरे की शुरुआती डिफ़ॉल्ट पिच से "अप" या "डाउन" ऐंगल वेरियंस तय होता है. यह अक्सर (लेकिन हमेशा नहीं) फ़्लैट हॉरिज़ॉन्टल होता है. (उदाहरण के लिए, किसी पहाड़ी पर ली गई इमेज में, डिफ़ॉल्ट पिच हॉरिज़ॉन्टल नहीं होगी.) पिच ऐंगल को पॉज़िटिव वैल्यू से ऊपर की ओर (सीधे ऊपर की ओर +90 डिग्री और डिफ़ॉल्ट पिच के ऑर्थोगोनल) और नेगेटिव वैल्यू से नीचे की ओर (सीधे नीचे की ओर -90 डिग्री और डिफ़ॉल्ट पिच के ऑर्थोगोनल) मापा जाता है.

ज़ूम करें

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 ऑब्जेक्ट, मैप मार्कर दिखा सकता है. संबंधित प्रॉपर्टी सेट करके, एक ही GMSMarker ऑब्जेक्ट का इस्तेमाल GMSMapView या GMSPanoramaView ऑब्जेक्ट पर किया जा सकता है:

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 पर मौजूद तरीकों की सूची देखें.