如何为我的应用获取准确的地理位置坐标。在某些情况下,我需要知道手机的位置误差约为8米。
swift位置管理器是否处理所有算法内容?可以更准确吗?
我的应用会针对可能是有用信息的城市。
答案 0 :(得分:2)
Core Location提供的位置准确性取决于多种因素,尤其是
您可以使用CLLocationManager实例上的desiredAccuracy
属性请求特定级别的位置准确性。默认值为kCLLocationAccuracyBest
,这是最高精度水平,但由于GPS信号的限制,通常不会超过10米。
将位置更新发送到didUpdateLocations:
委托方法后,您可以检查horizontalAccuracy
属性,以获取该位置位置准确性的指示。
答案 1 :(得分:2)
以下是如何为您的应用获取准确的地理位置坐标的示例。像保罗说的那样
"默认值为
kCLLocationAccuracyBest
,这是最高准确度"
但如果您愿意,也可以使用其他人,例如kCLLocationAccuracyNearestTenMeters
import UIKit
import MapKit
import CoreLocation
class ViewController: UIViewController, CLLocationManagerDelegate, MKMapViewDelegate {
@IBOutlet var map: MKMapView!
var manager:CLLocationManager!
override func viewDidLoad() {
super.viewDidLoad()
manager = CLLocationManager()
manager.delegate = self
manager.desiredAccuracy = kCLLocationAccuracyBest
manager.requestWhenInUseAuthorization()
manager.startUpdatingLocation()
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
print(locations)
let userLocation:CLLocation = locations[0]
let latitude:CLLocationDegrees = userLocation.coordinate.latitude
let longitude:CLLocationDegrees = userLocation.coordinate.longitude
let latDelta:CLLocationDegrees = 0.05
let lonDelta:CLLocationDegrees = 0.05
let span:MKCoordinateSpan = MKCoordinateSpanMake(latDelta, lonDelta)
let location:CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longitude)
let region:MKCoordinateRegion = MKCoordinateRegionMake(location, span)
map.setRegion(region, animated: false)
}
希望这有帮助!