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

प्लैटफ़ॉर्म चुनें: 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 पर, इवेंट की गाइड और तरीकों की सूची देखें.