सड़क दृश्य

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

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

खास जानकारी

Google Street View, अपने कवरेज एरिया में मौजूद सड़कों के 360 डिग्री पैनोरमिक व्यू दिखाता है. SDK टूल की मदद से उपलब्ध कवरेज, 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 डिग्री पैनोरामा, किसी स्फ़ीयर पर प्रोजेक्शन को तय करता है. इसमें इमेज को उस स्फ़ीयर के 2D सरफ़ेस पर रैप किया जाता है.

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

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

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

panoramaID
यह Street View पैनोरमा का यूनीक आईडी है. यह panoramaID समय के साथ बदल सकता है. इसलिए, इसे लंबे समय तक इस्तेमाल करने या हार्ड-कोड किए गए रेफ़रंस के तौर पर इस्तेमाल करने के लिए सही नहीं माना जाता. panoramaID का इस्तेमाल, Street View की अलग-अलग इमेज को प्रोग्राम के हिसाब से ऐक्सेस करने के लिए किया जाता है.
coordinate
इस इमेज की सटीक जगह की जानकारी, CLLocationCoordinate2D के तौर पर दी गई है. पैनोरामा की जगह की जानकारी को हमेशा के लिए सेव करने के लिए, coordinate का इस्तेमाल करें. इसके अलावा, मैप पर उपयोगकर्ता की कार्रवाइयों को Street View की इमेज में बदलने के लिए भी इसका इस्तेमाल किया जा सकता है.

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

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

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 लॉन्च करना

Google Street View की तस्वीरें, iOS के लिए Google Maps ऐप्लिकेशन में देखी जा सकती हैं. comgooglemaps यूआरएल स्कीम का इस्तेमाल करके, iOS के लिए Google Maps ऐप्लिकेशन को Street View मोड में लॉन्च किया जा सकता है. इसके लिए, mapmode पैरामीटर को streetview पर सेट करें. 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 ऑब्जेक्ट, मैप मार्कर दिखा सकता है. 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 की जगह के बीच की दूरी के हिसाब से, मार्कर का साइज़ छोटा या बड़ा होगा. अगर यह दूरी बहुत ज़्यादा हो जाती है, तो मार्कर इतना छोटा हो जाएगा कि उसे दिखाया नहीं जा सकेगा और वह व्यू से छिप जाएगा.

panoramaView प्रॉपर्टी को nil पर सेट करें, ताकि इसे GMSPanoramaView से हटाया जा सके.

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

इवेंट

Street View पैनोरमा पर होने वाले इवेंट को सुना जा सकता है. जैसे, जब कोई उपयोगकर्ता पैनोरमा पर टैप करता है. इवेंट सुनने के लिए, आपको GMSPanoramaViewDelegate प्रोटोकॉल लागू करना होगा. इवेंट के बारे में पूरी जानकारी देने वाली गाइड और GMSPanoramaViewDelegate पर मौजूद तरीकों की सूची देखें.