我正在创建一个使用位置的应用程序 -
一切都在游泳,除了一件事 -
当我回到家时,我的iphone连接到我的本地wifi网络,而不是使用手机中的GPS获取我的位置它试图通过弄清楚我的wifi网络连接到哪里 - 如果我关闭我的wifi它保持准确位置点 -
一旦我的手机连接到我的wifi网络,它就会开始告诉我我的位置离我的实际点数公里/英里 .
我希望我的应用程序不要使用wifi网络尝试获取我的位置 -
有没有办法,我可以 - a . 判断一个位置点是否已从GPS导出,因此我可以忽略从wifi网络派生的位置 . 湾停止位置服务跳转到wifi的位置
6 回答
您可以设置cLLocationAccuracy.desiredAccuracy = kCLLocationAccuracyBest并查看是否这样做 . 它应该尝试并限制GPS使用,但这不是100%保证 .
它在家中使用WIFI的原因是因为它无法直接看到太空中的GPS卫星 - 而不是没有给你任何位置数据,它使用下一个最好的可用来源 .
好吧,我做了一些游戏
找到一些苹果文档说
[location verticalAccuracy]
需要一个带gps的设备 .所以我把这段代码插入(删节)并根据我所做的有限测试,它似乎正在做我想要的:
谢谢大家的回复 .
除了要求用户关闭他的Wifi之外,没有记录的方法可以强制位置管理员通过Wifi使用GPS . 私有API可能是可能的,但这也会让你从App Store中被拒绝 .
iPhone不仅通过Wi-Fi或移动网络获得不准确的GPS坐标,而且还获得精度等级> 100米的真实坐标 .
我用的是放线:
if (newLocation.horizontalAccuracy < 0 || newLocation.horizontalAccuracy > 50) return;
作为
didUpdateToLocation
中的第一行,过滤掉不准确的坐标 .'location age'即
NSTimeInterval locationAge=[locTimestamp timeIntervalSinceNow];
不能让我摆脱缓存的坐标 .A-GPS = GPS蜂窝塔三角测量 . 没有WI-FI定位 .