我正在构建一个基于 loc 的应用程序,使用 CLLocationManager 和 locationManager:didUpdateToLocation: fromLocation: 我试图确定用户是否移动到足以触发其他处理。我正在使用双变量。我很久以前就学会了不要将双打等同,而是将增量与阈值进行比较。我将 abs(旧 - 新)与 0.0005f 的增量进行比较
但是这段代码...
double latDelta = abs(theConsumer.latLong.clLocation.coordinate.latitude - newLocation.coordinate.latitude);
double lonDelta = abs(theConsumer.latLong.clLocation.coordinate.longitude - newLocation.coordinate.longitude);
NSString *fooBar = [NSString stringWithFormat:
@"???Delta LAT: abs(current (%f) - new (%f)) = delta %f.",
theConsumer.latLong.clLocation.coordinate.latitude,
newLocation.coordinate.latitude,
latDelta];
产生这个输出:delta 为零。
GPSLogger.m:(26)> GPSLOG: GPS: 39.4425- North, 77.8132- West/n MeterAccuracyFormat 0
GPSLogger.m:(26)> GPSLOG: 找到新坐标:Lat:39.442494 Lon:-77.813175 DataModel.m:(197)> DistanceFromLoc: 710.517020 DataModel.m:(199)> Got a delta > 0.000500 DataModel.m:( 214)> Delta LAT:abs(当前 (39.440120) - 新 (39.442494)) = delta 0.000000。
数字是否溢出?有没有更好的方法来做到这一点(即一种有效的方法)?
谢谢。