स्ट्रीट व्यू

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

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

खास जानकारी

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

iOS के लिए मैप SDK टूल, Google Maps Street View में इस्तेमाल की गई तस्वीरें पाने और उनमें बदलाव करने के लिए 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 पैनोरामा का यूनीक आईडी. यह 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 व्यूअर जोड़ना

दर्शक जोड़ने के बुनियादी चरण ये हैं:

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

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, कैमरे की जगह के आस-पास घूमने के ऐंगल को सही उत्तर की ओर से डिग्री में परिभाषित करता है. शीर्षक को घड़ी की सुई की दिशा में मापा जाता है: सही में उत्तर है 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: तरीके को कॉल करके, ट्रांज़िशन को ऐनिमेट किया जा सकता है. इसके अलावा, कोर ऐनिमेशन का इस्तेमाल करके भी कैमरा कंट्रोल किया जा सकता है. इसे पसंद के मुताबिक बनाए गए CALayer की मदद से, GMSPanoramaView, GMSPanoramaLayer पर उपलब्ध कराया गया है.

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 में इवेंट से जुड़ी पूरी गाइड और तरीकों की सूची देखें.