सड़क दृश्य

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

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

खास जानकारी

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

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

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

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

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

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

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

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

  • 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 व्यूअर जोड़ता है.

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

सड़क दृश्य में मार्कर

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 की जगह के बीच की दूरी के हिसाब से तय होगा. अगर यह दूरी बहुत ज़्यादा हो जाती है, तो मार्कर दिखाने के लिए बहुत छोटा हो जाएगा और व्यू से छिप जाएगा.

panoramaView प्रॉपर्टी को GMSPanoramaView से हटाने के लिए, उसे nil पर सेट करें.

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

इवेंट

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