MapView-də verilən iki koordinat arasında ən qısa yol necə alınır?

Bir xəritə şəklində iki koordinat arasında ən qısa yol tapa bilmirəm. Bir yığın taşması aradım, ancaq xəritədə göstərmək üçün dəqiq bir iOS kodu deyil , mənə bir növ alqoritm göstərir . Bunu necə əldə edə bilərəm?

Təşəkkür edirik.

-10
18 июля '17 в 13:27 2017-07-18 13:27 Swati 18 iyul '13 ' də 13:27 ' də təyin olunub
@ 3 cavab

@swati Mən aşağıdakı kimi qısa yol tapmaq üçün bir google xəritəsi tətbiq: Xahiş edirik kodu və obyektlərin sizə uyğun olaraq dəyişdirin.

Aşağıdakı URL'ye link verə bilərsiniz: Google Map Sənədləri

- (boş) drawRoute: (CLLocationDegrees) lat və: (CLLocationDegrees) lng {

  if ([polyline isKindOfClass:[GMSPolyline class]]){ polyline = nil; polyline.map = nil; currentPoly.map = nil; } [polyline setMap:nil]; currentPoly.map = nil; CLLocation *LocationAtual = [[CLLocation alloc] initWithLatitude:lat longitude:lng]; [self fetchPolylineWithOrigin:currentLocation destination:LocationAtual completionHandler:^(GMSPolyline *polyline1) { if(polyline1) polyline1.map = mapView; }]; } 
border=0
  -(void)fetchPolylineWithOrigin:(CLLocation )origin destination:(CLLocation )destination completionHandler:(void (^)(GMSPolyline *))completionHandler { NSString *originString = [NSString stringWithFormat:@"%f,%f", origin.coordinate.latitude, origin.coordinate.longitude]; NSString *destinationString = [NSString stringWithFormat:@"%f,%f", destination.coordinate.latitude, destination.coordinate.longitude]; NSString *directionsAPI = @"https://maps.googleapis.com/maps/api/directions/json?"; NSString *directionsUrlString = [NSString stringWithFormat:@"%@ directionsAPI, originString, destinationString]; NSURL *directionsUrl = [NSURL URLWithString:directionsUrlString]; NSURLSessionDataTask *fetchDirectionsTask = [[NSURLSession sharedSession] dataTaskWithURL:directionsUrl completionHandler: ^(NSData data, NSURLResponse response, NSError *error) { NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error: if(error) { if(completionHandler) completionHandler(nil); return; } routesArray = [json objectForKey:@"routes"]; dispatch_sync(dispatch_get_main_queue(), ^{ currentPoly.map = nil; NSString *points; if ([routesArray count] > 0) { NSDictionary *routeDict = [routesArray objectAtIndex:0]; NSDictionary *routeOverviewPolyline = [routeDict objectForKey:@"overview_polyline"]; points = [routeOverviewPolyline objectForKey:@"points"]; } GMSPath *path = [GMSPath pathFromEncodedPath:points]; polyline = [GMSPolyline polylineWithPath:path]; polyline.strokeWidth = 4.f; polyline.strokeColor = [UIColor colorWithRed:0.2043 green:0.6188 blue:0.9986 alpha:1.0000]; polyline.geodesic = YES; polyline.map = mapView; currentPoly = polyline; [self distance:place_Id]; if(completionHandler) completionHandler(polyline); }); }]; [fetchDirectionsTask resume]; } 

================================================= =======================

  -(void)distance :(NSString*)placeId{ NSString *mainURL = @"https://maps.googleapis.com/maps/api/place/details/json?"; NSString *placeid = placeId; NSString *key =@"Your Google Api Key"; // Write here your google API Key here NSString *directionsUrlString = [NSString stringWithFormat:@"placeid=%@ key]; mainURL = [mainURL stringByAppendingString:directionsUrlString]; NSURL *url = [NSURL URLWithString:mainURL]; NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url]; [urlRequest setTimeoutInterval:30.0f]; [urlRequest setHTTPMethod:@"GET"]; NSOperationQueue *queue = [[NSOperationQueue alloc] init]; [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { if ([data length] >0  error == nil){ NSMutableString *strResponse =[[NSMutableString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSData *data = [strResponse dataUsingEncoding:NSUTF8StringEncoding]; id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; //NSLog(@"json=====%@",json); deatils_result = [json objectForKey:@"result"]; } else if ([data length] == 0  error == nil) { //NSLog(@"Nothing was downloaded."); } else if (error != nil) { // NSLog(@"Error happened = %@", error); } }]; } 
0
18 июля '17 в 15:16 2017-07-18 15:16 Cavab Parvendra Singh tərəfindən 18 İyul '17 'də 15:16 2017-07-18 15:16' də verilir

Google api sənədinin linkidir . Bunun tələb olunan və isteğe bağlı parametri ilə birlikdə api ilə cəhd edin. Google Tarif Yolları Servisini istifadə etmək çox maraqlıdır.

0
18 июля '17 в 14:40 2017-07-18 14:40 Cavab SachinVsSachin 18 iyul '14 saat 14:40 2017-07-18 14:40 verilir

bağlı digər suallar və ya bir sual