答えて

8

GMSMapViewDelegateには、mapView:didLongPressAtCoordinate:というメソッドがあります。このメソッドは、特定の座標で長押しのジェスチャーの後に呼び出されます。参照番号hereを参照してください。同様のデリゲートメソッドは、同様の方法で使用することができmapView:didTapAtCoordinate:と呼ばれる実装することができ、タップジェスチャーについて

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

は、このメソッドを実装することによって、あなたはその後、マップビューにマーカーを追加することができ

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 –

関連する問題