我正在使用谷歌地图为我的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]]
以下是问题的视频演示。你会看到,当我向方向移动时,路线正在重新计算,但是它会从向后方向重新计算。我需要从我前进的方向重新计算。