关于iOS CLLocation API CLLOCATIONCoordinate2无效,操作系统如何处理GPS有效与否?

关于iOS CLLocation API CLLOCATIONCoordinate2无效,操作系统如何处理GPS有效与否?,ios,gps,Ios,Gps,关于iOS CLLocation API CLLocationCoordinate2D无效,OS如何处理CLLocationCoordinate2D(lat和lon)是否有效?正如您所知,CLLocationCoordinate2D中的lat和lon都是双精度数据类型,双精度意味着更珍贵,例如3.245799999,它将始终被CLLocationCoordinate2DIsValid视为无效。这种问题在服务器协议定义中经常会出现,需要从NSString改为双值,遇到同样问题的请大家一起讨论,并提

关于iOS CLLocation API CLLocationCoordinate2D无效,OS如何处理CLLocationCoordinate2D(lat和lon)是否有效?正如您所知,CLLocationCoordinate2D中的lat和lon都是双精度数据类型,双精度意味着更珍贵,例如3.245799999,它将始终被CLLocationCoordinate2DIsValid视为无效。这种问题在服务器协议定义中经常会出现,需要从NSString改为双值,遇到同样问题的请大家一起讨论,并提前感谢

BOOL CLLocationCoordinate2DIsValid(CLLocationCoordinate2D coord)

您正在混合两件事:

  • CLLocationCoordinate2DIsValid
    描述值(纬度/经度)是否在有效范围内

  • LocationManager将在
    CLLOCATION
    HorizontalAccurance
    字段中用负值标记无效位置。此CLLocation在
    locationManager:didUpdateLocations
    中提供。这种无效的标记坐标意味着没有足够的(GPS)位置(导航解决方案)。尽管无效CLLocation的lat/lon值仍可能在有效范围内(请参阅CLLocationCoordinate2DIsValid)


  • 关于主题2,iOS没有说明何时将位置标记为无效,但很可能直接使用GPS协议的fix valid标志。(芯片到iOS实习生)

    很清楚“有效”是什么意思。为什么
    3.245799999
    会“无效”?你说的是精确性。这与该函数的功能完全不同,该功能检查度数是否在有效范围内。你真正的问题是什么?问这个问题是因为我的项目中的GPS值来源于第三方,在我这方面,我们使用CLLOCATIONCoordinate2无效方法来检查它是否有效。在某些情况下,它报告无效,但我们在GPS(纬度、经度)值中未发现任何异常。我想知道苹果是如何实现这一逻辑的?非常感谢。你这边一定有虫子。CLLocatoin中提供的lat/lon坐标应始终在有效范围内,仅举一个例子,说明交付的lat/lon对无效。但是,您不能使用CLLocationCoordination2DisValid检查位置有效/无效(GPS)位置,除非yoz activley将lat/lon值替换为特殊的无效有效值(例如-888888),以防水平接触精度为负值。Alex,感谢您的回复。检查GPS验证费用,以在mkcoordinaereregion=mkcoordinaereregionmakewithdistance(坐标2D,10000,10000)上发现碰撞;[_MapViewSetRegion:region];如果GPS坐标2D无效。它可以被视为一个受保护的解决方案。第三方服务器仅为车间位置提供lat和lon,没有可用的水平接触精度,这是我们测试是否有效的一个大难题。如果第三方:如果cord=(0,0)则无效,如果CLLocationcoordinate2DIsValid==false则无效。此外,您可能希望避免极性区域:如果纬度>80或纬度<-80,则无效。你不能做的更多。