0

我正在开发一个导航应用程序,它将提供轮流导航。我正在使用谷歌方向 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

4

0 回答 0