需要延迟等待 GPS

发布于 2024-11-11 13:58:54 字数 110 浏览 2 评论 0 原文

使用 iPhone 和 Objective C,有没有办法停止或执行定时循环,以允许 GPS 赶上并返回一组有效的坐标?

目前,应用程序运行速度太快,GPS 无法足够快地提供坐标......

Using the iPhone and objective C, is there a way to stall or perform a timing loop to allow for the GPS to catch up and return a valid set of coordinates?

Currently, the application runs too quickly and the GPS cannot supply the coordinates fast enough...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

云醉月微眠 2024-11-18 13:58:54

既然你说你在 iPhone 上,那么你正在使用 CLLocationManager。只需在管理器上设置委托并等待 locationManager:didUpdateToLocation:fromLocation: 消息即可知道 GPS 数据何时准备就绪。

Since you said you're on iPhone, you're using CLLocationManager. Just set a delegate on the manager and wait for the locationManager:didUpdateToLocation:fromLocation: message to know when the GPS data is ready.

酒绊 2024-11-18 13:58:54

假设您的 GPS 轮询在与用户界面不同的线程中运行,您可以调用静态 NSThread 函数 sleepForTimeIntervalsleepUntilDate 来自线程正在等待 GPS 数据。

Assuming your GPS polling is running in a different thread to the User Interface, you can call the static NSThread functions sleepForTimeInterval or sleepUntilDate from the thread that is waiting for the GPS data.

总攻大人 2024-11-18 13:58:54

如果您的移动应用程序使用 GPS,则即使您的应用程序不跟踪移动,您的应用程序也应该为位置更新做好准备。
常见的情况是用户将您的应用程序置于后台,然后在完全不同的位置激活它。

在 iOS 上,创建 CLLocationManagerDelegate 就像 Anomie 写的那样。并使用更新的时间戳来评估该位置的新鲜度。

不要睡觉&像其他人建议的那样进行民意调查。

If your mobile application is using GPS, your application should be prepared for location updates, even if your application doesn't track movements..
A common case would be where the user put your application in background and activate it later on a completely different location.

On iOS, create an implementation of CLLocationManagerDelegate like Anomie wrote. And use the timestamp of the update to evaluate the freshness of the location.

Don't sleep & poll like other people suggested.

○闲身 2024-11-18 13:58:54

要么阻止等待数据,要么如果没有收到数据则不更新任何内容。当然有 usleep(),但没有显示代码以及具体如何执行循环以及通过什么机制(线程或非线程)我们只能笼统地回答。

Either block to wait for data or don't update anything if no data received. There is of course usleep(), but without showing code and specifically how your loop is executed and by what mechanism (threaded or not) we can only answer in general terms.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文