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

时间:2016-05-15 21:16:11

标签: swift google-maps-sdk-ios

所以我想试试这个,所以我打开应用程序,它从用户的位置开始。问题是我得到了#34;用户的位置未知"在输出框中。我已启用位置,如下面的代码所示,所以我想知道是否有其他可能导致此问题。感谢帮助。

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 个答案:

答案 0 :(得分:0)

您是否尝试过使用CLLocationManager()

尝试下面的教程,这应该向您展示如何获取用户的位置。这将引导您通过要求用户查看其位置的权限,然后使用GMSGeocoder()

向下反转地理位置以显示他们所在的地址

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

[1]:Ray Wenderlich

希望有所帮助

答案 1 :(得分:0)

我试过这样:

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

  2. 在视图中设置正确的委托(GMSMapViewDelegate):例如

    类MapView:UIViewController,GMSMapViewDelegate {...}

  3. 最后将委托设置为GMSMapView实例。在我的情况下mapView:

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