3

Я новичок в быстром и SDK Google Maps, и мне было интересно, как получить координаты того, где пользователь прослушивал с помощью SDK Google Maps. Например, если пользователь держит палец в определенном месте на карте, там создается аннотация. Спасибо, спасибо.Swift - GoogleMaps SDK получает координаты при касании

ответ

8

В GMSMapViewDelegate существует метод с именем: mapView:didLongPressAtCoordinate:, который вызывается после жесткого нажатия на конкретную координату. См. Ссылку here.

При реализации этого метода вы могли бы добавить маркер в виде карты:

func mapView(mapView: GMSMapView!, didLongPressAtCoordinate coordinate: CLLocationCoordinate2D) { 
    let marker = GMSMarker(position: coordinate) 
    marker.title = "Hello World" 
    marker.map = mapView 
} 

Для крана жест подобный метод делегата может быть реализован под названием mapView:didTapAtCoordinate:, которые могут быть использованы аналогичным образом:

func mapView(mapView: GMSMapView!, didTapAtCoordinate coordinate: CLLocationCoordinate2D) { 
    print("Tapped at coordinate: " + String(coordinate.latitude) + " " 
            + String(coordinate.longitude)) 
} 
+0

Что происходит, если пользователь долго нажимает на существующий маркер? Как я могу идентифицировать пользователя, нажав на маркер или карту? –

+0

Вы можете обнаружить кран на маркере, используя метод GMSMapViewDelegate mapView: didTapMarker:. К сожалению, не существует метода обнаружения длинных нажатий на маркеры в делегате. Поэтому вам нужно будет использовать метод mapView: didLongPressAtCoordinate: и затем определить маркер на основе его атрибута местоположения, возможно, путем прокрутки и сравнения координат вашего маркера с координатой, которую пользователь долго нажал, предоставленной делегатом. См. Здесь: https://developers.google.com/maps/documentation/ios-sdk/reference/interface_g_m_s_marker.html#a2b9fdae0160d7acf439889ffcdb5f68b –