ग्राउंड ओवरले, मैप पर ऐसे ओवरले होते हैं जो अक्षांश/देशांतर निर्देशांक से जुड़े होते हैं. इसलिए, मैप को खींचने या ज़ूम करने पर ये ओवरले हिलते हैं.
शुरुआती जानकारी
ग्राउंड ओवरले वह इमेज होती है जो किसी मैप पर स्थिर होती है. मार्कर से अलग, ग्राउंड ओवरले स्क्रीन की बजाय पृथ्वी की सतह पर होते हैं. इसलिए, मैप को घुमाने, झुकाने या ज़ूम करने से इमेज का ओरिएंटेशन बदल जाता है.
ग्राउंड ओवरले जोड़ने के लिए, GMSGroundOverlay
ऑब्जेक्ट बनाएं. यह ऑब्जेक्ट, आइकॉन और बाउंड, दोनों को परिभाषित करेगा. इन दोनों में से कोई भी जानकारी न देने पर, ग्राउंड ओवरले
मैप पर नहीं दिखेगा. आप वैकल्पिक तौर पर ऐसी अतिरिक्त सेटिंग तय कर सकते हैं
जो मैप पर इमेज की पोज़िशन पर असर डालेगी. ज़रूरी विकल्प तय करने के बाद, ओवरले जोड़ने के लिए इस ऑब्जेक्ट की map
प्रॉपर्टी को सेट करें.
ओवरले जोड़ना
- नया
GMSGroundOverlay
ऑब्जेक्ट इंस्टैंशिएट करें icon
प्रॉपर्टी कोUIImage
के इंस्टेंस पर सेट करें.bounds
प्रॉपर्टी कोGMSCoordinateBounds
के इंस्टेंस पर सेट करें. ये बाउंड, इमेज के दक्षिण-पश्चिम और उत्तर-पूर्व के कोनों को दिखाते हैं.- अपनी ज़रूरत के हिसाब से,
bearing
औरzoomLevel
जैसी वैकल्पिक प्रॉपर्टी सेट करें. map
प्रॉपर्टी सेट करें - इमेज मैप पर दिखेगी.
नीचे दिए गए उदाहरण में, मौजूदा GMSMapView
ऑब्जेक्ट में ग्राउंड ओवरले जोड़ने का तरीका बताया गया है.
Swift
let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655) let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544) let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast) // Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg let icon = UIImage(named: "newark_nj_1922") let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon) overlay.bearing = 0 overlay.map = mapView
Objective-C
CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655); CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544); GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest coordinate:northEast]; // Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"]; GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon]; overlay.bearing = 0; overlay.map = mapView;
ओवरले हटाना
अपनी GMSGroundOverlay
की map
प्रॉपर्टी को nil
पर सेट करके, मैप से ग्राउंड ओवरले हटाया जा सकता है. इसके अलावा, सभी ओवरले हटाए जा सकते हैं (इसमें, मैप पर मौजूदा ग्राउंड ओवरले भी शामिल हैं. इन्हें हटाने के लिए GMSMapView
clear
तरीके को कॉल करें.
Swift
mapView.clear()
Objective-C
[mapView clear];
अगर ग्राउंड ओवरले को मैप में जोड़ने के बाद आपको इसमें बदलाव करना है, तो पक्का करें कि आपने GMSGroundOverlay
ऑब्जेक्ट को होल्ड करके रखा हो. आप बाद में इस ऑब्जेक्ट में बदलाव करके, ग्राउंड ओवरले में बदलाव कर सकते हैं.
Swift
let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon) overlay.bearing = 0 overlay.map = mapView // ... overlay.isTappable = true
Objective-C
GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon]; overlay.bearing = 0; overlay.map = mapView; // ... overlay.tappable = YES;
इवेंट
मैप पर होने वाले इवेंट को सुना जा सकता है, जैसे कि जब कोई उपयोगकर्ता किसी ओवरले पर टैप करता है. इवेंट सुनने के लिए, आपको
GMSMapViewDelegate
प्रोटोकॉल लागू करना होगा. GMSMapViewDelegate
में इवेंट के बारे में बताने वाली गाइड और तरीकों की सूची
देखें.