ग्राउंड ओवरले

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript

ग्राउंड ओवरले ऐसे ओवरले होते हैं जो मैप पर अक्षांश/देशांतर निर्देशांक से जुड़े होते हैं. इससे मैप को खींचने या ज़ूम करने पर ये मूव हो जाते हैं.

शुरुआती जानकारी

ग्राउंड ओवरले वह इमेज होती है जिसे मैप पर जोड़ा जाता है. मार्कर के उलट, ग्राउंड ओवरले का ओरिएंटेशन स्क्रीन के बजाय पृथ्वी की सतह पर होता है. इसलिए, मैप को घुमाने, झुकाने या ज़ूम करने से इमेज का ओरिएंटेशन बदल जाएगा.

ग्राउंड ओवरले जोड़ने के लिए, ऐसा GMSGroundOverlay ऑब्जेक्ट बनाएं जो आइकॉन और बाउंड, दोनों को परिभाषित करता हो. इनमें से किसी भी को तय न करने पर, मैप पर ग्राउंड ओवरले नहीं दिखेगा. आप वैकल्पिक रूप से ऐसी अतिरिक्त सेटिंग तय कर सकते हैं जो मैप पर इमेज की जगह पर असर डालेंगी. ज़रूरी विकल्प तय करने के बाद, ओवरले जोड़ने के लिए इस ऑब्जेक्ट की map प्रॉपर्टी को सेट करें.

ओवरले जोड़ना

  1. नया GMSGroundOverlay ऑब्जेक्ट इंस्टैंशिएट करें
  2. icon प्रॉपर्टी को UIImage के इंस्टेंस पर सेट करें.
  3. bounds प्रॉपर्टी को GMSCoordinateBounds के इंस्टेंस पर सेट करें. ये सीमाएं इमेज के दक्षिण-पश्चिम और उत्तर-पूर्व के हिस्सों को दिखाती हैं.
  4. अपनी ज़रूरत के हिसाब से, bearing और zoomLevel जैसी वैकल्पिक प्रॉपर्टी सेट करें.
  5. 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 पर तरीकों की सूची देखें.