2017-08-10 19 views
-5

私はSwift3でアプリをコーディングしています。私はGoogle Maps SDKを使用しています。私はGMSMapViewを実装しました。私は、ユーザーがGMSMapViewでタップした緯度経度を確認しようとしています。ユーザーがタップした位置のLat Longを取得するにはどうすればよいですか? Swift v3とgoogle maps sdk

以下は、私が助けてくれると思われるアンドロイド開発版のリファレンスです。しかし、私はiOSの等価物を見つけることができません。

https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener

編集:私の問題は解決しませんでした "可能性重複"。

+3

可能な重複(https://stackoverflow.com/questions/38530470/how-to-get-lat-long-of-tapped [GoogleマップのiOSスウィフトでタップした場所の緯度ロングを取得する方法] -location-in-google-map-ios-swift) – nathan

+0

私はSwiftバージョン3とGoogleマップSDKの最新バージョンについて話しているので重複していません。私はあなたが言及した可能性のある重複の中で解決策を試しましたが、決して引き金を引くようです。 – Neo42

+4

APIは実際には同じです:[GMSMapViewDelegate](https://developers.google.com/maps/documentation/ios-sdk/reference/protocol_g_m_s_map_view_delegate-p.html#a9f226252840c79a996df402da9eec235)。あなたは答えの下のコメントを読んだことがありますか? *ドキュメントはいを見ると、これはSwift 3で動作するはずです。GMSMapViewデリゲートが設定されていますか?* – nathan

答えて

0

didTapAtCoordinateのGoogle検索でhttps://developers.google.com/maps/documentation/ios-sdk/events という解決策が見つかりましたが、これはSDKの一部であることが分かっていました。

私にとって最も重要な行は、mapView.delegate = selfです。私が試した他のいくつかのソリューションでは、mapView.delegate = selfを使用していましたが、他に何も言及していない可能性があります。また、func mapViewはもちろん重要なので、ユーザーがタップした座標を使用できます。

import UIKit 
import GoogleMaps 

override func loadView() { 
    let camera = GMSCameraPosition.camera(withLatitude: 1.285, 
             longitude: 103.848, 
             zoom: 12) 

    let mapView = GMSMapView.map(withFrame: .zero, camera: camera) 
    mapView.delegate = self 
    self.view = mapView 
} 

// MARK: GMSMapViewDelegate 
class DemoViewController: UIViewController, GMSMapViewDelegate { 
} 

func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) { 
     print("You tapped at \(coordinate.latitude), \(coordinate.longitude)") 
}//end func 
関連する問題