如何在没有互联网连接的情况下获取纬度和经度
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)
【讨论】:
以上是关于如何在没有互联网连接的情况下获取纬度和经度的主要内容,如果未能解决你的问题,请参考以下文章
IPHONE:我可以在没有互联网的情况下使用 GPS 来获取当前的纬度和经度
在没有互联网的情况下在android上获取位置坐标(纬度和经度)