2016-06-27 13 views
-2

Ich versuche die Zeichenpfadlinie auf der Karte zwischen zwei location.it zeigt nicht auf der Straße ist es wie der kürzeste Abstand zwischen zwei Ortsmarke auf der Straße.Pfadlinie auf der Karte in iPhone zeichnen

Ich habe mit Snap auf der Straße versucht. I MKDirectionsRequest sowie (es gibt Fehler, ich suche dann einige Orte, die es zeigt dies funktioniert nicht in Indien.)

Jede andere Möglichkeit, die Straße zu zeichnen.

+0

hilfreich sein Können Sie mir zeigen, was Sie getan haben? Ich meine Code? –

+0

verwenden Sie Google MAP? –

+0

http://StackOverflow.com/Questions/10598322/iphone-how-to-draw-line-between-two-points-on-mapkit –

Antwort

0

Satellit, Richtung, Navigationsdienste von Apple sind nicht in mehreren Ländern vorhanden, weshalb Sie nicht die entsprechenden Ergebnisse erhalten.

Überprüfen Sie bitte diesen Link von Apple: http://www.apple.com/in/ios/feature-availability/

besser ist, verwenden Sie Google Maps in Ihrer App Ihren Standort-Koordinaten zu erhalten.

https://developers.google.com/maps/documentation/ios-sdk/start wird dieser Link zu Ihnen

+1

Die Frage ist mit Google Maps getaggt. –

0

Sie können Google API API dafür verwenden.

- (void)drawRoute :(CLLocationCoordinate2D)myOrigin destination:(CLLocationCoordinate2D)myDestination 
{ 
     [self fetchPolylineWithOrigin:myOrigin destination:myDestination completionHandler:^(GMSPolyline *polyline1) 
     { 
     if(polyline1) 
      polyline1.map = mapView_; 
     }]; 
    } 


- (void)fetchPolylineWithOrigin:(CLLocationCoordinate2D)origin destination:(CLLocationCoordinate2D)destination completionHandler:(void (^)(GMSPolyline *))completionHandler 
{ 
NSString *originString = [NSString stringWithFormat:@"%f,%f", origin.latitude, origin.longitude]; 
NSString *destinationString = [NSString stringWithFormat:@"%f,%f", destination.latitude, destination.longitude]; 
NSString *directionsAPI = @"https://maps.googleapis.com/maps/api/directions/json?"; 
NSString *directionsUrlString = [NSString stringWithFormat:@"%@&origin=%@&destination=%@&mode=driving", directionsAPI, originString, destinationString]; 
NSURL *directionsUrl = [NSURL URLWithString:directionsUrlString]; 


NSURLSessionDataTask *fetchDirectionsTask = [[NSURLSession sharedSession] dataTaskWithURL:directionsUrl completionHandler: 
              ^(NSData *data, NSURLResponse *response, NSError *error) 
              { 
               dispatch_async(dispatch_get_main_queue(), ^{ 
                NSError *error; 
               NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 
               if(error) 
               { 
                if(completionHandler) 
                 completionHandler(nil); 
                return; 
               } 

               NSArray *routesArray = [json objectForKey:@"routes"]; 

               GMSPolyline *polyline = nil; 

               if ([routesArray count] > 0) 
               { 
                NSDictionary *routeDict = [routesArray objectAtIndex:0]; 
                NSDictionary *routeOverviewPolyline = [routeDict objectForKey:@"overview_polyline"]; 
                NSString *points = [routeOverviewPolyline objectForKey:@"points"]; 
                GMSPath *path = [GMSPath pathFromEncodedPath:points]; 
                polyline = [GMSPolyline polylineWithPath:path]; 
                polyline.strokeColor = [UIColor redColor]; 
                polyline.strokeWidth = 5.0; 
               } 

               if(completionHandler) 
                completionHandler(polyline); 
              }); 
              }]; 
[fetchDirectionsTask resume]; 
} 
Verwandte Themen