כשמוגדרים מאפיינים מתקדמים של סמנים, אפשר לעקוב אחר אירועי סמנים כמו הקשות ותנועות. אם מקישים על סמן, אפשר לראות מידע נוסף, כמו כותרת או קטע טקסט של סמן. אפשר גם להזיז סמנים שניתנים לגרירה באמצעות תנועת לחיצה ארוכה.
- כדי לעקוב אחר אירועי סמנים, צריך להוסיף את
GMSMapViewDelegate
ל-view
. - כדי לסמן סמן שאפשר לגרור, מגדירים את המאפיין
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;