我正在开发一个导航应用程序,它将提供轮流导航。我正在使用谷歌方向 API 来绘制点之间的最佳路线。除了源和目的地,用户最多可以添加 8 个航点。我已将所有坐标存储在一个数组中,并在 didUpdateLocations 方法中检查当前位置与存储在数组中的坐标之间的距离。如果距离小于 5 米,则用户正朝着正确的方向前进
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
CLLocation *myLocation = [locations lastObject];
BOOL goingWrongWay = YES;
//Searching Current Location in Coordinates Array
for(int i=0;i<self.decodedArray.count;i++)
{
CLLocation *tempLoc = [self.decodedArray objectAtIndex:i];
//NSLog(@"distance=%f", [myLocation distanceFromLocation:tempLoc]);
if([myLocation distanceFromLocation:tempLoc]<=5)
{
goingWrongWay = NO;
break;
}
}
if(goingWrongWay)
self.title = @"Wrong Way";
else
self.title = @"On Track";
NSLog(@"YES");
if(isShowingRoute)
{
NSLog(@"YES");
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:myLocation.coordinate.latitude
longitude:myLocation.coordinate.longitude
zoom:19.0];
[mapView animateToCameraPosition:camera];
}
}
有没有其他方法可以检测用户是否朝着正确的方向前进,因为我必须重新路由用户。顺便说一句,我正在为 ios 使用谷歌地图 SDK