如何在没有互联网连接的情况下获取纬度和经度

Posted

技术标签:

【中文标题】如何在没有互联网连接的情况下获取纬度和经度【英文标题】:How to get latitude and longitude while there is no internet connection 【发布时间】:2016-01-10 19:19:20 【问题描述】:

我有一个应用程序可以获取您的位置并将其打印在标签上。但是当没有互联网连接时,我遇到了一个问题,纬度和经度没有显示。这是我的代码。有什么解决方案可以让纬度和经度脱机吗?。对不起我的语言。

@IBOutlet weak var latitude: UILabel!
@IBOutlet weak var Longitude: UILabel!
let locationManager = CLLocationManager()
override func viewDidLoad() 
    super.viewDidLoad()


@IBAction func mapsPressed(sender: UIButton) 

    self.locationsManager()


func locationsManager()
    self.locationManager.delegate = self
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
    self.locationManager.requestWhenInUseAuthorization()
    self.locationManager.startUpdatingLocation()


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()


func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 

    CLGeocoder().reverseGeocodeLocation(manager.location!, completionHandler: (placemarks, error) -> Void in
        if (error != nil) 
            print("ERROR:" + error!.localizedDescription)
            return
        
        if let pm = placemarks?.first 
            self.saveLatitudeLongitude(pm)
            self.locationManager.stopUpdatingLocation()
        
        else 
            print("Error with data")
        
    )


func saveLatitudeLongitude(placemark: CLPlacemark) 
    //  self.locationManager.stopUpdatingLocation()
    self.latitude.text = String(placemark.location!.coordinate.latitude)
    self.Longitude.text = String(placemark.location!.coordinate.longitude)


func locationManager(manager: CLLocationManager, didFailWithError error: NSError) 
    print("Error:" + error.localizedDescription)

【问题讨论】:

【参考方案1】:

由于反向地理编码器的调用,您的代码失败。反向地理编码需要互联网连接。但如果只需要经纬度,则不需要使用反向地理编码器。坐标应在didUpdateLocations 的位置中可用。

在我的脑海中(无法访问 Xcode):

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 
    print(locations.first?.coordinates)

【讨论】:

以上是关于如何在没有互联网连接的情况下获取纬度和经度的主要内容,如果未能解决你的问题,请参考以下文章

java 在没有互联网连接的情况下获取纬度和经度

IPHONE:我可以在没有互联网的情况下使用 GPS 来获取当前的纬度和经度

如何在没有互联网连接的情况下从位置获取地址

在没有互联网的情况下在android上获取位置坐标(纬度和经度)

如何在没有谷歌地图 API 的情况下在我的应用程序中获取经度和纬度?

我们可以在没有互联网而只有 GPS 的情况下获得纬度和经度吗?