Googleマップでタップオーバーレイから取得します。私たちが持っているオーバーレイの正確なLATおよびLONG座標を抽出することができればLATおよびLONGユーザーがオーバーレイをタップすると、以下のコードがトリガされる
func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) {
}
私は疑問に思いますタップされましたか?
ありがとうございます!
Googleマップでタップオーバーレイから取得します。私たちが持っているオーバーレイの正確なLATおよびLONG座標を抽出することができればLATおよびLONGユーザーがオーバーレイをタップすると、以下のコードがトリガされる
func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) {
}
私は疑問に思いますタップされましたか?
ありがとうございます!
オーバーレイであってもいなくても、どこでも正確な座標を取得したい場合は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
私はマップに描画されたポリラインを持っており、私はそれをタップ可能にする必要があります。ですから、 'overlay.isTappable = true'が必要です。 –
@JaysonTamayo「GoogleMapsSDK」には、オーバーレイをタップするときの正確な座標を与えるメソッドはありません。オーバーレイをタップしたイベントのみを受け取ることができますが、 'GMSOverlay'クラスは座標オプションを持たないため、オーバーレイをタップして座標を取得することはできません。 –
別の方法があるはずです。オーバーレイタップを聞いている間に 'didTapAt'を持つ可能性はありますか? –
を参照してくださいだから私は、私はそれがこの問題に役立つことを願っています方法でそれらを組み合わせた:ユーザーがでクリックした場合
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
に含まれているかどうかを確認してください。fire
didTap overlay
そのためのoverlay
です。
polylines
とpolygons
isTappable = false
を作ることを確認し、しかし、心の中で、このイベントは、彼らがoverlaped
ある場合if
成功を取るとき、あなたはreturn
を置くことができるにもかかわらず、タップごとoverlay
ために解雇されます最初にoverlay
のみ
私の答えを確認してください –