Google Maps के Street View में, 360-डिग्री और सड़क-स्तर की तस्वीरों के ज़रिए दुनिया भर की जगहों को एक्सप्लोर किया जा सकता है. इसमें दुनिया की मशहूर जगहों को एक्सप्लोर किया जा सकता है, प्राकृतिक अजूबे देखे जा सकते हैं, यात्रा के दौरान नेविगेट किया जा सकता है या अपने कारोबार की बाहरी खूबसूरती को दिखाया जा सकता है.
खास जानकारी
Google Street View अपने कवरेज एरिया की सभी सड़कों से,
पैनोरामिक 360-डिग्री नज़ारे देखने की सुविधा मिलती है. SDK टूल से उपलब्ध कराया गया कवरेज, iOS के लिए Google Maps ऐप्लिकेशन या https://maps.google.com/
के लिए उपलब्ध कवरेज जैसा ही होता है. Street View के बारे में जानकारी पर जाकर, Street View के बारे में ज़्यादा जानें और इंटरैक्टिव मैप पर उन इलाकों की जानकारी देखें जहां यह सुविधा काम करती है.
iOS के लिए मैप 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
के तौर पर दिखाया गया है. पैनोरामा जगह को लगातार सेव करने के लिएcoordinate
का इस्तेमाल करें या मैप पर उपयोगकर्ता की कार्रवाइयों का अनुवाद Street View की इमेज में करने के लिए करें.
panoramaID
और coordinate
, दोनों को GMSPanorama
ऑब्जेक्ट की प्रॉपर्टी के तौर पर सेव किया जाता है. आपके पास coordinate
या panoramaID
का इस्तेमाल करके, GMSPanoramaService
से GMSPanorama
का अनुरोध करने का विकल्प है. नतीजे में मिलने वाले ऑब्जेक्ट में, मेटा-डेटा के दोनों हिस्से शामिल होंगे. साथ ही, आस-पास के पैनोरामा के लिए लिंक का कलेक्शन भी शामिल होगा.
पैनोरामा का स्थान सेट करना
Street View पैनोरामा की जगह, निर्देशांक के आधार पर सेट की जा सकती है.
moveNearCoordinate
तरीका, निर्देशांक के पास पैनोरामा का अनुरोध करता है.moveNearCoordinate:radius
तरीका भी मिलता-जुलता है, लेकिन इसमें निर्देशांक के आस-पास मीटर में, खोज का दायरा तय करने की सुविधा मिलती है.moveNearCoordinate:source
तरीके की मदद से, सोर्स तय किया जा सकता है. अगर आप चाहते हैं कि Street View के लिए सिर्फ़ बाहर की तस्वीरें ढूंढने के लिए, जगह की जानकारी का इस्तेमाल किया जाए, तो सोर्स काम का होता है. डिफ़ॉल्ट रूप से, स्थानों के पैनोरामा अंदर या बाहर होते हैं. ध्यान दें कि हो सकता है कि किसी खास जगह के लिए आउटडोर पैनोरामा मौजूद न हों.moveNearCoordinate:radius:source
वाले तरीके से, आपको दायरे और सोर्स, दोनों की जानकारी देने की सुविधा मिलती है.
स्ट्रीट व्यू इमेज देखना
Street View व्यूअर जोड़ना
दर्शक जोड़ने के बुनियादी चरण ये हैं:
- (एक बार) SDK टूल पाने के लिए, Getting Started में दिया गया तरीका अपनाएं. इसके बाद, कोई कुंजी पाएं और ज़रूरी फ़्रेमवर्क जोड़ें.
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 लॉन्च करने वाले यूआरएल का उदाहरण नीचे दिया गया है. ज़्यादा जानकारी के लिए, यूआरएल स्कीम दस्तावेज़ देखें.
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 डिग्री सीधे ऊपर और डिफ़ॉल्ट पिच के बराबर ऑर्थोगनल) और नीचे की ओर देखने वाली नेगेटिव वैल्यू (-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:
तरीके को कॉल करके, ट्रांज़िशन को ऐनिमेट किया जा सकता है.
इसके अलावा, कोर ऐनिमेशन का इस्तेमाल करके भी कैमरा कंट्रोल किया जा सकता है. इसे पसंद के मुताबिक बनाए गए CALayer
की मदद से, GMSPanoramaView
, GMSPanoramaLayer
पर उपलब्ध कराया गया है.
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
की जगह के बीच की दूरी के फ़ंक्शन के तौर पर, मार्कर का साइज़, स्केल किया जाएगा. अगर यह दूरी बहुत ज़्यादा हो जाती है, तो मार्कर दिखाने के लिए बहुत छोटा हो जाएगा और व्यू से छिप जाएगा.
GMSPanoramaView
से हटाने के लिए, panoramaView
प्रॉपर्टी को nil
पर सेट करें.
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
इवेंट
आप Street View पैनोरामा पर होने वाली गतिविधियों की जानकारी सुन सकते हैं, जैसे कि जब कोई उपयोगकर्ता पैनोरामा पर टैप करता है. इवेंट सुनने के लिए, आपको
GMSPanoramaViewDelegate
प्रोटोकॉल लागू करना होगा. GMSPanoramaViewDelegate
में इवेंट से जुड़ी पूरी गाइड और तरीकों की सूची देखें.