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 की इमेज, पैनोरामा के तौर पर दिखती हैं और इन्हें
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
ऑब्जेक्ट की प्रॉपर्टी के तौर पर सेव किया जाता है. GMSPanoramaService
से GMSPanorama
का अनुरोध करने के लिए, coordinate
या panoramaID
का इस्तेमाल करें. नतीजे में बनने वाले ऑब्जेक्ट में मेटा-डेटा के दोनों हिस्से शामिल होंगे. साथ ही, आस-पास के पैनोरामा के लिए लिंक की एक कैटगरी भी शामिल होगी.
पैनोरामा की जगह सेट करना
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 व्यूअर जोड़ता है.
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 डिग्री सीधे और डिफ़ॉल्ट पिच की ओर ऑर्थोगनल
ज़ूम करना
ज़ूम का इस्तेमाल करके, 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
पर जाकर, इवेंट के बारे में पूरी गाइड और तरीकों की सूची देखें.