सड़क दृश्य

प्लैटफ़ॉर्म चुनें: 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 के लिए Maps SDK टूल, Street View की सेवा देता है. इसकी मदद से, Google Maps के Street View में इस्तेमाल की गई तस्वीरों को ऐक्सेस किया जा सकता है और उनमें बदलाव किया जा सकता है. Street View इमेज, पैनोरमा के तौर पर दिखती हैं. इन्हें GMSPanoramaView टाइप के ऑब्जेक्ट, Street View व्यूअर में देखा जा सकता है.

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

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

निर्देशांक के आधार पर, 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 इमेज की जगह की जानकारी सेट करें.

यहां दिए गए उदाहरण में, किसी ऐप्लिकेशन में Street View व्यूअर जोड़ा गया है.

SwiftObjective-C
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))
  }
}
      
#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: तरीके का इस्तेमाल करके, सभी जेस्चर को एक साथ चालू या बंद किया जा सकता है.

SwiftObjective-C
panoView.setAllGesturesEnabled(false)
      
[panoView setAllGesturesEnabled:NO];
      

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

Google 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 कैमरे के पॉइंट-ऑफ़-व्यू को हेडिंग, पिच, और ज़ूम के कॉम्बिनेशन के तौर पर सेट किया जा सकता है.

नीचे दिए गए स्निपेट सेट, कैमरे को दक्षिण की ओर और थोड़ा नीचे की ओर ले जाएंगे.

SwiftObjective-C
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
      
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 बनाया जा सकता है.

SwiftObjective-C
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
      
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

GMSPanoramaView के animateToCamera:animationDuration: तरीके को कॉल करके, ट्रांज़िशन को ऐनिमेट किया जा सकता है. इसके अलावा, Core Animation का इस्तेमाल करके भी कैमरे को कंट्रोल किया जा सकता है. इसे GMSPanoramaView, GMSPanoramaLayer को कस्टम CALayer के ज़रिए उपलब्ध कराया गया है.

Street View में मार्कर

GMSPanoramaView ऑब्जेक्ट, मैप मार्कर दिखा सकता है. एक ही GMSMarker ऑब्जेक्ट का इस्तेमाल, GMSMapView या GMSPanoramaView ऑब्जेक्ट में से किसी एक पर किया जा सकता है. इसके लिए, उससे जुड़ी प्रॉपर्टी सेट करें:

SwiftObjective-C
// 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
      
// 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 से हटाएं.

SwiftObjective-C
marker.panoramaView = nil
      
marker.panoramaView = nil;
      

इवेंट

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