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