代码之家  ›  专栏  ›  技术社区  ›  deee_geee

如何使用Google Maps SDK for Swift查找用户的位置?

  •  1
  • deee_geee  · 技术社区  · 10 年前

    所以我正在尝试获取它,所以我打开应用程序,它从用户的位置开始。问题是我在输出框中得到“用户位置未知”。如下面的代码所示,我启用了位置功能,所以我想知道是否是其他原因导致了这个问题。谢谢你的帮助。

    import UIKit
    import GoogleMaps
    
    class ViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
    
            let camera = GMSCameraPosition.cameraWithLatitude(-33.86,
                                                              longitude: 151.20, zoom: 6)
            let mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
            mapView.accessibilityElementsHidden = false
            mapView.myLocationEnabled = true
            self.view = mapView
    
            if let mylocation = mapView.myLocation {
                print("User's location: \(mylocation)")
            } else {
                print("User's location is unknown")
            }
            let marker = GMSMarker()
            marker.position = CLLocationCoordinate2DMake(-33.86, 151.20)
            marker.title = "Sydney"
            marker.snippet = "Australia"
            marker.map = mapView
    
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
    
    }
    
    2 回复  |  直到 10 年前
        1
  •  0
  •   Rowan Stanley    10 年前

    你试过用吗 CLLocationManager() ?

    尝试下面的教程,这将向您展示如何获取用户的位置。这将带您通过请求用户允许查看他们的位置,向下反向地理编码位置以显示他们所在的地址,使用 GMSGeocoder()

    [ https://www.raywenderlich.com/109888/google-maps-ios-sdk-tutorial][1]

    [1] :Ray Wenderlich

    希望能有所帮助

        2
  •  0
  •   Maxime    9 年前

    我尝试过这样做:

    1. 在中使用(或您需要的任何内容)时,为授权请求设置自定义字符串 “隐私-使用时的位置使用说明” (或者简单地说 NSLocationWhenInUseUsageDescription )属于我的 信息.plist 属性文件。然后,这将要求您授权查找您的位置。

    2. 设置适当的代理( GMSMapViewDelegate )在您看来:例如

      类MapView:UIViewController、GMSMapViewDelegate{…}

    3. 最后将代表设置为 GMSMapView 例子在我的案例中,mapView:

    let mapView = GMSMapView.map(withFrame: frameMapViewContainer, camera: camera) mapView.delegate = self