【问题标题】:How to get exact current location for google maps with accuracy less than 1 meter, Swift 4?如何获得准确度小于1米的谷歌地图的准确当前位置,Swift 4?
【发布时间】:2018-06-06 14:58:53
【问题描述】:

我正在从事建设项目,为此我想获取必须满足 1 米精度的准确当前位置。我正在使用带有 SDK“CLLocationManager”的谷歌地图,我正在获取当前位置,但位置不准确,它的位置有一些 (+/-)5 米到 (+/-)10 米的错误。 我想要准确/准确的当前位置,其位置精度误差不应超过一英尺。 请帮我获取确切的当前位置。 另外,是否有任何第三方库、任何硬件设备(我可以连接到 iOS 设备。)或其他任何东西,请告诉我。 您的宝贵意见将不胜感激。

已编辑:-

我在这里分享我的代码以使用 CLLocationManager 获取当前位置:

override func viewDidLoad() 
{
     super.viewDidLoad()

     self.locationManager = CLLocationManager() 
     self.locationManager.delegate = self 
     self.locationManager.desiredAccuracy = kCLLocationAccuracyBest 
     self.locationManager.requestWhenInUseAuthorization()
     self.locationManager.requestAlwaysAuthorization()
     self.locationManager.startUpdatingLocation()
}

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{            
     let position = CLLocationCoordinate2D(latitude: manager.location!.coordinate.latitude, longitude: manager.location!.coordinate.longitude)
     marker.position = position 
     print("position:",position)
}

谢谢你..

【问题讨论】:

  • 发布您的代码。
  • @Mia:编辑并发布了我的代码。

标签: ios swift google-maps cllocationmanager swift4


【解决方案1】:
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]){
   guard let location = manager.location else{
        return
    }
   var currentLocationCoordinate = location.coordinate
}

使用此委托函数,您将获得当前位置

【讨论】:

  • :谢谢您的意见,但请仔细阅读我的问题。我说的是位置“准确性”。
  • self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
  • 是的,我已经测试了所有的准确性,但没有得到准确/准确的位置。我需要准确的当前位置,误差不应超过一英尺。
【解决方案2】:

您应该始终使用 GPS 来获取准确的位置。您可以设置 locationManager.desireAccuracy = kCLLocationAccuracyBest。它会调用 locationManager didUpdateLocation 和位置数组,每个位置都有其准确性,您可以在此处应用您的逻辑。

当您完成所需的准确位置时,请注意调用 locationManager.stopUpdatingLocation()。

例如

let horizontalAccuracy: Double = 20.0
let howRecent = location.timestamp.timeIntervalSinceNow
    guard CLLocationCoordinate2DIsValid(location.coordinate),
      location.horizontalAccuracy > 0,
      location.horizontalAccuracy < horizontalAccuracy,
      abs(howRecent) < 10 else { return false }
    return true

  }

【讨论】:

    【解决方案3】:

    如果您想获得确切的位置,您可以使用外部 GPS,在设备的帮助下,您总会得到这种波动。您还可以将位置精度设置为最佳。

    https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/LocationBestPractices.html

    【讨论】:

    • 嗨,Deepak,感谢您提供宝贵的意见。我浏览了你的链接。但是,不幸的是,它对我没有帮助。您要求使用外部 gps 设备,那么您对这种设备有什么想法可以为我提供准确/准确的当前位置,该位置不应超过一英尺。?
    • 市场上有很多产品可用于此,它们也提供SDK。 amazon.com/s/…
    猜你喜欢
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    相关资源
    最近更新 更多