開発環境
Xcode 11.6
Swift 5.2.4
現在マップアプリを作っているものです
Swiftで現在地を取得してみたを見ながら現在地を取得してそこにマーカーをたてようとしています
マーカーの場所の初期値を決めればマーカーをたてれるのですが、マーカーの位置を現在地を取得してそこにたてるということが出来ません
現在のコード
Swift
1import UIKit 2import GoogleMaps 3 4class SecondViewController: UIViewController, CLLocationManagerDelegate { 5 6 var locationManager = CLLocationManager() 7 lazy var mapView = GMSMapView() 8 var longitude: CLLocationDegrees! 9 var latitude: CLLocationDegrees! 10 11 12 override func viewDidLoad() { 13 super.viewDidLoad() 14 15 //初期値は立川駅 16 let camera = GMSCameraPosition.camera(withLatitude: 35.6978368, longitude: 139.4137252, zoom: 15.0) 17 mapView = GMSMapView.map(withFrame: CGRect(origin: .zero, size: view.bounds.size), camera: camera) 18 //右下のボタン追加する 19 mapView.settings.myLocationButton = true 20 mapView.isMyLocationEnabled = true 21 22 // User Location 23 locationManager.delegate = self 24 locationManager.requestWhenInUseAuthorization() 25 locationManager.desiredAccuracy = kCLLocationAccuracyBest 26 //位置情報取得を開始 27 locationManager.startUpdatingLocation() 28 29 self.view.addSubview(mapView) 30 self.view.insertSubview(mapView, at:0) 31 32 33 } 34 35 36 //現在地が更新されたら呼び出される 37 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 38 let userLocation = locations.last 39 40 let camera = GMSCameraPosition.camera(withLatitude: userLocation!.coordinate.latitude, 41 longitude: userLocation!.coordinate.latitude, zoom: 15.0) 42 self.mapView.animate(to: camera) 43 44 //マーカー追加 45 let marker = GMSMarker() 46 marker.position = CLLocationCoordinate2D(latitude: userLocation!.coordinate.latitude, 47 longitude: userLocation!.coordinate.latitude) 48 marker.title = "Hello World" 49 marker.map = mapView 50 51 locationManager.stopUpdatingLocation() 52 53 54 } 55 56 @IBAction func goBack(_ sender: Any) { 57 dismiss(animated: true, completion: nil) 58 } 59 60} 61 62
あなたの回答
tips
プレビュー