如何在swift ios中从移动网络获取纬度和经度[关闭]
Posted
技术标签:
【中文标题】如何在swift ios中从移动网络获取纬度和经度[关闭]【英文标题】:how to get Latitude and Longitude from mobile network in swift ios [closed] 【发布时间】:2021-12-30 09:03:52 【问题描述】:当用户位置未打开时,我想从移动网络获取用户位置。像 android 网络提供商。
【问题讨论】:
ios 不提供从移动网络获取用户位置的特定 API。当您使用 CoreLocation 获取用户的位置时,iOS 会根据您要求的准确性使用一系列技术。 【参考方案1】:这是 CoreLocation 的工作。流程如下:
确保更新 Info.plist Privacy - Location When In Use Usage Description 或 Always 或 One Time,具体取决于应用程序
导入核心位置
import CoreLocation
实例化一个 CoreLocationManager
var locationManager = CLLocationManager()
在要处理数据的 VC 或对象中,将其声明为 CLLocationManagerDelegate 并执行以下操作:
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()//there's a few option for this like 1 time or all the time. Choose what's right for your app
locationManager.requestLocation()
在您声明为 CLLocationManagerDelegate 的 VC 或对象中,实现 locationManager 委托方法 didUpdateLocation 和 didFailWithError(可选但推荐):
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
print("Updated location to:")
print(locations)//note this is an array!
if let best_location = locations.last
locationManager.stopUpdatingLocation()
print("Lat:\(best_location.coordinate.latitude) Lon:\(best_location.coordinate.longitude)" // do with these whatever you need to
func locationManager(_ manager: CLLocationManager, didFailWithError error: Error)
print(error)//recommended you do something with UI to let user know if there's a problem
请参阅上面的 cmets,因为有一些特定于应用程序的曲折,但这是它的基础。请注意,在模拟器中,您可能会遇到奇怪的行为,并且您必须设置位置。我总是喜欢在真正的侧载设备上做这些事情。
【讨论】:
以上是关于如何在swift ios中从移动网络获取纬度和经度[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 CLLocationManager-Swift 获取当前的经度和纬度
如何在 iOs 中使用 CLGeoCoder 使用邮政编码/邮政编码获取纬度经度?