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

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

  • मार्कर इवेंट ट्रैक करने के लिए, अपने 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 प्रॉपर्टी को true पर सेट करें.

Swift

marker.draggable = true

Objective-C

marker.draggable = YES;