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