准确的地理位置范围变量

Posted

技术标签:

【中文标题】准确的地理位置范围变量【英文标题】:Accurate geolocation range variables 【发布时间】:2014-12-15 02:13:18 【问题描述】:

如何为我的应用获取准确的地理位置坐标。在某些情况下,我需要知道手机在哪里,误差约为 8 米。

swift 位置管理器是否处理所有算法内容?可以更准确吗?

我的应用将定位可能是有用信息的城市。

【问题讨论】:

【参考方案1】:

Core Location 提供的位置准确性取决于许多因素,尤其是

GPS 信号质量;这些在室内或地下可能会退化或不存在。市中心的大型建筑物也会反射这些信号,导致位置不准确 已知 WiFi 网络的可用性 位置服务已启用多长时间

您可以使用 CLLocationManager 实例上的 desiredAccuracy 属性请求特定级别的位置准确度。默认值为kCLLocationAccuracyBest,这是精度最高的级别,但由于 GPS 信号的限制,通常不会优于 10m。

当位置更新传递到您的 didUpdateLocations: 委托方法时,您可以检查 horizontalAccuracy 属性以获取位置位置准确性的指示。

【讨论】:

【参考方案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)

    

希望这会有所帮助!

【讨论】:

以上是关于准确的地理位置范围变量的主要内容,如果未能解决你的问题,请参考以下文章

如何使用核心位置检测准确度误差范围

传单用户位置变量

核心位置 - iphone sdk 中的准确性问题

Android:提高地理围栏的准确性

使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置

使用twitteR推文的地理位置似乎不准确