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