स्ट्रीट व्यू

प्लैटफ़ॉर्म चुनें: 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 की इमेज, पैनोरामा के तौर पर दिखती हैं और इन्हें 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 के तौर पर दिखाया गया है. पैनोरामा वाली जगह को लगातार सेव करने के लिए या मैप पर उपयोगकर्ता की कार्रवाइयों को 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. (एक बार) 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 डिग्री सीधे और डिफ़ॉल्ट पिच की ओर ऑर्थोगनल

Zoom

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