2016-12-24 6 views

答えて

0

これを行う方法は複数あります。そのうちの1つは、ユーザーが地図を長押ししたときにマーカーを追加することです。長いプレスを検出するために、このデリゲートメソッドを実装します。彼らは、マーカーのカスタム属性を設定しているよう

func mapView(_ mapView: GMSMapView, didLongPressAt coordinate: CLLocationCoordinate2D) { 
    let marker = GMSMarker(position: coordinate) 
    // marker.isDraggable = true 
    // marker.appearAnimation = kGMSMarkerAnimationPop 
    marker.map = mapView 
    // marker.icon = GMSMarker.markerImage(with: UIColor.blue) 
} 

コメントアウトされた行はオプションです。あなたがカスタマイズできるものがたくさんあります。また

、あなたはまだ行っていない場合は、あなたのビューコントローラクラスの宣言にGMSMapViewDelegateを追加します。

class YourViewController: UIViewController, GMSMapViewDelegate { 

delegateプロパティにselfを割り当てます。また

let camera = GMSCameraPosition.camera(withLatitude: 0, longitude: 0, zoom: 3) 
    let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera) 
    mapView.isMyLocationEnabled = true 
    view = mapView 

    mapView.delegate = self // add this line! 

、あなたは他のイベントが発生したときにマーカーを追加できます。たとえば、ユーザーがUIBarBUttonItemまたはUIButtonをタップすると、マーカーを追加できます。それはすべてあなた次第です!しかし、ボタンを追加するプロセスは、基本的に以下の2行です:

let marker = GMSMarker(position: coordinate) 
marker.map = mapView 
// mapView is the map that you want to add the marker to. If you are doing this outside a delegate method, use self.view 

また、あなたが後でそれらを変更することができますので、コレクションにマーカーを追加することを検討することができます。

+0

私の答えがあなたの質問に答えると思うのであれば、そのチェックマークをクリックして受け入れてください。 @欲望 – Sweeper

関連する問題