2016-10-11 6 views
1

Googleマップでタップオーバーレイから取得します。私たちが持っているオーバーレイの正確なLATおよびLONG座標を抽出することができればLATおよびLONGユーザーがオーバーレイをタップすると、以下のコードがトリガされる

func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) { 


    } 

私は疑問に思いますタップされましたか?

ありがとうございます!

+0

私の答えを確認してください –

答えて

0

オーバーレイであってもいなくても、どこでも正確な座標を取得したい場合はGoogleMapsをタップするたびに呼び出されるGMSMapViewDelegateという別の代理人があります。このデリゲートでは、オーバーレイのタップに関係なく、マップ上でタップした正確な座標を取得できます。

スウィフト

func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) { print(coordinate.latitude) print(coordinate.longitude) } 

あなただけのマーカーをタップ上の座標を取得したい場合は3.0

、その後、

func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool { 
     print(marker.position.latitude) 
     print(marker.position.longitude) 
     return true 
    } 

として、あなたのオーバーレイを作るようにしてください。このデリゲートメソッドを使用しますノンタブル可能

overlay.isTappable = false 
012参考のため

、私たちは一緒に2つの方法を必要とするこの問題を解決するにはhere

+0

私はマップに描画されたポリラインを持っており、私はそれをタップ可能にする必要があります。ですから、 'overlay.isTappable = true'が必要です。 –

+0

@JaysonTamayo「GoogleMapsSDK」には、オーバーレイをタップするときの正確な座標を与えるメソッドはありません。オーバーレイをタップしたイベントのみを受け取ることができますが、 'GMSOverlay'クラスは座標オプションを持たないため、オーバーレイをタップして座標を取得することはできません。 –

+0

別の方法があるはずです。オーバーレイタップを聞いている間に 'didTapAt'を持つ可能性はありますか? –

0

を参照してくださいだから私は、私はそれがこの問題に役立つことを願っています方法でそれらを組み合わせた:ユーザーがでクリックした場合

func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) { 
    print(overlay) 
} 

func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) { 
    print(coordinate) 

    for polyline in polylines { 
     if GMSGeometryIsLocationOnPath(coordinate, polyline.path!, true) { 
      self.mapView(mapView, didTap: polyline) 
     } 
    } 
    for polygon in polygons { 
     if GMSGeometryContainsLocation(coordinate, polygon.path!, true) { 
      self.mapView(mapView, didTap: polygon) 
     } 
    } 
} 

coordinateこれを処理します。次にがこれまでに定義したPolylineまたはPolygonに含まれているかどうかを確認してください。firedidTap overlayそのためのoverlayです。

polylinespolygonsisTappable = false

を作ることを確認し、しかし、心の中で、このイベントは、彼らがoverlapedある場合if成功を取るとき、あなたはreturnを置くことができるにもかかわらず、タップごとoverlayために解雇されます最初にoverlayのみ

関連する問題