現在マップアプリを作っています
マップアプリとしてトップ画面にGoogleMapを表示することせん
ファイル構造としては
NewOMMMap(アプリ名)
GoogleMapsView.swift
Swift
1import SwiftUI 2import GoogleMaps 3 4class GoogleMapsViewController: UIViewController, CLLocationManagerDelegate { 5 6 var locationManager = CLLocationManager() 7 lazy var mapView = GMSMapView() 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 // Do any additional setup after loading the view. 12 13 //初期値はApple本社 14 let camera = GMSCameraPosition.camera(withLatitude: 37.3318, longitude: -122.0312, zoom: 17.0) 15 mapView = GMSMapView.map(withFrame: CGRect(origin: .zero, size: view.bounds.size), camera: camera) 16 mapView.settings.myLocationButton = true //右下のボタン追加する 17 mapView.isMyLocationEnabled = true 18 19 // User Location 20 locationManager.delegate = self 21 locationManager.requestWhenInUseAuthorization() 22 locationManager.desiredAccuracy = kCLLocationAccuracyBest 23 locationManager.startUpdatingLocation() 24 25 self.view.addSubview(mapView) 26 self.view.bringSubviewToFront(mapView) 27 } 28 29 //現在地が更新されたら呼び出される 30 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 31 let userLocation = locations.last 32 33 let camera = GMSCameraPosition.camera(withLatitude: userLocation!.coordinate.latitude, 34 longitude: userLocation!.coordinate.latitude, zoom: 17.0) 35 self.mapView.animate(to: camera) 36 37 locationManager.stopUpdatingLocation() 38 } 39 40} 41
ContentView.swift
Swift
1import SwiftUI 2 3struct ContentView: View { 4 5 var body: some View { 6 GoogleMapsView() #この記述で表示できると思っていたのですが、出来ない、、 7 } 8} 9 10struct ContentView_Previews: PreviewProvider { 11 static var previews: some View { 12 ContentView() 13 } 14}
Swift と SwiftUI のどちらで実装されたいのでしょうか。
SwiftUIです????♂️
SwiftUIはほとんど手をつけたことがないので何とも言えませんが、この方法で表示できるという解説はどこかにあったのでしょうか。
ビューの作り方が根本的に違うので、両者を混在させて書くにはもっと細工が必要だったと思います。
なるほどです、ありがとうございます
ビューの作り方を理解していませんでした
StoryboardならGoogleMapを表示できているのでそちらでやっていこうと思います
丁寧にありがとうございます????♂️
検証していないので保証できませんが、
https://kwmt27.net/2019/10/06/how-to-googlemap-on-swiftui/
のような感じになるはずです(「SwiftUI GoogleMap」で調べればすぐに出てきます)。
従来のSwiftベースでできるのであれば、それが一番いいかと思います。
ありがとうございます!
またいろいろ質問すると思います????♂️
回答1件
あなたの回答
tips
プレビュー