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