谷歌地图IOS:重新计算旅行方向的路线

时间:2015-05-19 12:13:09

标签: ios google-maps google-maps-sdk-ios

我正在使用谷歌地图为我的IOS应用程序。

我可以根据方向API计算路线和绘制折线。目前的方向api和我的代码运作良好。但是如果用户不打算画路线或走向错误的方向。我想从用户旅行的方向重新计算路线,而不是从用户的方向开始。如果没有去绘制的路径,我每100米重新计算一次路线。

正确地计算路线但是在相反的方向上行驶。所以它应该检测我在道路上行进的方向,而不是我要来的向后方向。

这是代码段。我在委托中写了didUpdateToLocations:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

if (aLocationDistanceLoc  ==  Nil) {
    aLocationDistanceLoc=[[CLLocation alloc]init];
    aLocationDistanceLoc=newLocation;
}
else
{
    CLLocationDistance distance1 = [aLocationDistanceLoc distanceFromLocation:newLocation];
    if (distance1 > 100) {
        aLocationDistanceLoc=newLocation;
        if (GMSGeometryIsLocationOnPathTolerance(newLocation.coordinate, routesPath, YES, 10)) {
        }
        else
        {
            flagForRouteRecalculateActive=YES;

            [self callApiForNavigation:[NSString stringWithFormat:@"%f,%f",newLocation.coordinate.latitude,newLocation.coordinate.longitude] destinationPoint:[NSString stringWithFormat:@"%@,%@",currentLatDropoff ,currentLongDropoff ]];
        }

    }
}

以下是我的Directions API调用:

[NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/directions/json?origin=%f,%f&destination=%f,%f&sensor=true&mode=driving",[[arrayStart objectAtIndex:0] floatValue],[[arrayStart objectAtIndex:1] floatValue],[[arrayDestination objectAtIndex:0] floatValue],[[arrayDestination objectAtIndex:1] floatValue]]

以下是问题的视频演示。你会看到,当我向方向移动时,路线正在重新计算,但是它会从向后方向重新计算。我需要从我前进的方向重新计算。

video of actual Issue

0 个答案:

没有答案