मार्कर इवेंट और हाथ के जेस्चर

मार्कर की खास तौर पर सेट की गई, ऐडवांस प्रॉपर्टी सेट करने पर, मार्कर के इवेंट की निगरानी की जा सकती है. जैसे, टैप और जेस्चर. अगर किसी मार्कर पर टैप किया जाता है, तो मार्कर का टाइटल या स्निपेट जैसी अतिरिक्त जानकारी देखी जा सकती है. खींचे जा सकने वाले मार्कर को, लंबे समय तक दबाकर रखने वाले जेस्चर का इस्तेमाल करके भी ले जाया जा सकता है.

  • मार्कर के इवेंट ट्रैक करने के लिए, अपने view में GMSMapViewDelegate जोड़ें.
  • किसी मार्कर को खींचे जा सकने वाला बनाने के लिए, GMSMarker.draggable प्रॉपर्टी सेट करें.
  • किसी मार्कर के लिए, जानकारी देने वाला टेक्स्ट सेट करने के लिए, GMSMarker.title प्रॉपर्टी का इस्तेमाल करें.

मार्कर के इवेंट का जवाब देना

अपने व्यू में मार्कर के इवेंट का जवाब देने के लिए, GMSMapViewDelegate प्रोटोकॉल जोड़कर और उससे जुड़ा कॉलबैक लागू किया जा सकता है. इस उदाहरण में, चुने गए मार्कर के लिए title और snippet की पहचान की गई है.

Swift

// MARK: GMSMapViewDelegate

func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
  if let title = marker.title {
    if let snippet = marker.snippet {
      print("marker title: \(title): snippet: \(snippet)")
    }
  }
  return true
}

Objective-C

// MARK: GMSMapViewDelegate

-   (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker {
  if (marker.title && marker.snippet) {
    NSLog(@"marker with title:%@ snippet: %@", marker.title,  marker.snippet)
  }
  return YES;
}

मैप के ज़ूम लेवल के हिसाब से, मार्कर की विज़िबिलिटी को कंट्रोल करना

GMSMarker की विज़िबिलिटी को कंट्रोल करने के लिए, GMSMapViewDelegate प्रोटोकॉल लागू करें और GMSMarker.map सेट करने के लिए, कोई शर्त जोड़ें.

Swift

// MARK: GMSMapViewDelegate

func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) {
    marker.map = position.zoom >= 14 ? mapView : nil
}

Objective-C

// MARK: GMSMapViewDelegate

-   (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position {
  marker.map = position.zoom >= 14 ? mapView : nil;
}

किसी मार्कर को खींचे जा सकने वाला बनाना

draggable प्रॉपर्टी चालू करने पर, उपयोगकर्ता लंबे समय तक दबाकर रखने वाले जेस्चर का इस्तेमाल करके, मैप पर मार्कर खींच सकते हैं. किसी मार्कर को खींचे जा सकने वाला बनाने के लिए, GMSMarker.draggable प्रॉपर्टी को 'सही' पर सेट करें.

Swift

marker.draggable = true

Objective-C

marker.draggable = YES;