Я новичок в быстром и SDK Google Maps, и мне было интересно, как получить координаты того, где пользователь прослушивал с помощью SDK Google Maps. Например, если пользователь держит палец в определенном месте на карте, там создается аннотация. Спасибо, спасибо.Swift - GoogleMaps SDK получает координаты при касании
3
A
ответ
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))
}
Что происходит, если пользователь долго нажимает на существующий маркер? Как я могу идентифицировать пользователя, нажав на маркер или карту? –
Вы можете обнаружить кран на маркере, используя метод GMSMapViewDelegate mapView: didTapMarker:. К сожалению, не существует метода обнаружения длинных нажатий на маркеры в делегате. Поэтому вам нужно будет использовать метод mapView: didLongPressAtCoordinate: и затем определить маркер на основе его атрибута местоположения, возможно, путем прокрутки и сравнения координат вашего маркера с координатой, которую пользователь долго нажал, предоставленной делегатом. См. Здесь: https://developers.google.com/maps/documentation/ios-sdk/reference/interface_g_m_s_marker.html#a2b9fdae0160d7acf439889ffcdb5f68b –