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 डिग्री पैनोरमा बनता है, जिसमें इमेज को गोले के दो-आयामी सतह पर रैप किया जाता है.
Street View के पैनोरमा, GMSPanoramaView
ऑब्जेक्ट की मदद से देखे जा सकते हैं. यह ऑब्जेक्ट एक व्यूअर उपलब्ध कराता है, जो पैनोरमा को गोले के तौर पर रेंडर करेगा. इसके बीच में एक कैमरा होगा. प्रोग्राम के हिसाब से, कैमरे के ओरिएंटेशन को कंट्रोल किया जा सकता है. साथ ही, व्यूअर को पसंद के मुताबिक बनाने के लिए कई प्रॉपर्टी को भी कंट्रोल किया जा सकता है.
Street View का डेटा ऐक्सेस करना
Street View पैनोरमा की पहचान, इनमें से किसी एक मेटाडेटा से की जाती है:
panoramaID
- Street View पैनोरमा का यूनीक आईडी. यह
panoramaID
समय के साथ बदल सकता है. साथ ही, यह लंबे समय तक या हार्ड कोड किए गए रेफ़रंस के तौर पर काम नहीं करता.panoramaID
का सबसे अच्छा इस्तेमाल, अलग-अलग Street View इमेज का प्रोग्राम के हिसाब से ऐक्सेस देने के लिए किया जाता है. coordinate
- इस इमेज की सटीक जगह की जानकारी,
CLLocationCoordinate2D
के तौर पर दी गई है. पैनोरमा की जगह की जानकारी को हमेशा के लिए सेव करने या मैप पर उपयोगकर्ता की कार्रवाइयों को Street View इमेज में बदलने के लिए,coordinate
का इस्तेमाल करें.
panoramaID
और coordinate
, दोनों को GMSPanorama
ऑब्जेक्ट की प्रॉपर्टी के तौर पर सेव किया जाता है. coordinate
या panoramaID
का इस्तेमाल करके, GMSPanoramaService
से GMSPanorama
का अनुरोध किया जा सकता है. इससे मिले ऑब्जेक्ट में, मेटाडेटा के दोनों हिस्से शामिल होंगे. साथ ही, आस-पास के पैनोरमा के लिंक की एक कलेक्शन भी शामिल होगी.
पैनोरमा की जगह सेट करना
निर्देशांक के आधार पर, Street View पैनोरमा की जगह सेट की जा सकती है.
moveNearCoordinate
तरीके से, निर्देशांक के आस-पास पैनोरमा का अनुरोध किया जाता है.moveNearCoordinate:radius
तरीका भी इसी तरह का है. हालांकि, इसमें आपको निर्देशांक के आस-पास, मीटर में खोज का दायरा तय करने की सुविधा मिलती है.moveNearCoordinate:source
तरीके से, सोर्स की जानकारी दी जा सकती है. अगर आपको Street View में सिर्फ़ बाहर के पैनोरमा देखने हैं, तो सोर्स का इस्तेमाल करें. डिफ़ॉल्ट रूप से, जगहों के पैनोरमा या तो अंदर या बाहर के होते हैं. ध्यान दें कि हो सकता है कि बताई गई जगह के लिए, आउटडोर पैनोरमा मौजूद न हों.moveNearCoordinate:radius:source
तरीके से, दायरा और सोर्स, दोनों की जानकारी दी जा सकती है.
Street View की इमेज देखना
Street View व्यूअर जोड़ना
दर्शक जोड़ने के लिए, यह तरीका अपनाएं:
- (एक बार) SDK टूल, पासकोड, और ज़रूरी फ़्रेमवर्क पाने के लिए, शुरू करने का तरीका में दिया गया तरीका अपनाएं.
ViewController
बनाएं या अपडेट करें. अगर यह व्यू कंट्रोलर दिखने पर पैनोरमा दिखेगा, तो इसेloadView
तरीके से बनाएं.GMSPanoramaView
initWithFrame:
तरीके का इस्तेमाल करके,GMSPanoramaView
क्लास बनाएं और उसका उदाहरण दें. अगर इसका इस्तेमाल व्यू कंट्रोलर के सिर्फ़ एक व्यू के तौर पर किया जाना है, तोCGRectZero
का इस्तेमाल मैप के फ़्रेम के तौर पर किया जा सकता है — मैप का साइज़ अपने-आप बदल जाएगा.GMSPanoramaView
ऑब्जेक्ट को व्यू कंट्रोलर के व्यू के तौर पर सेट करें, जैसे किself.view = panoView;
.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 मोड में लॉन्च किया जा सकता है. 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
ऑब्जेक्ट, मैप मार्कर दिखा सकता है. एक ही 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
प्रॉपर्टी को nil
पर सेट करें, ताकि उसे GMSPanoramaView
से हटाया जा सके.
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
इवेंट
Street View पैनोरमा पर होने वाले इवेंट को सुना जा सकता है. जैसे, जब कोई उपयोगकर्ता पैनोरमा पर टैप करता है. इवेंट सुनने के लिए, आपको GMSPanoramaViewDelegate
प्रोटोकॉल लागू करना होगा. GMSPanoramaViewDelegate
पर, इवेंट के बारे में पूरी गाइड और तरीकों की सूची देखें.