简体   繁体   中英

Plotting a route between user's location and specified location on Google MapKit in Xcode

Hey guy, On my iPhone project, I built a Google Map using MapKit, and specified a location of my company on the map. Now I want to add a little feature where my google map will plot a route between a user's location to my company's location. So far this is the code I used to specify the location of my company

#import "GoogleMap.h"
#import "MyAnnotation.h"

@implementation GoogleMap

    - (void)viewDidLoad {
    [super viewDidLoad];

    variable1 = [[NSArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] 
                                                         pathForResource:@"NewYorkAreas" 
                                                         ofType:@"plist"]];

    double minLat = [[variable1 valueForKeyPath:@"@min.latitude"] doubleValue];
    double maxLat = [[variable1 valueForKeyPath:@"@max.latitude"] doubleValue];
    double minLon = [[variable1 valueForKeyPath:@"@min.longitude"] doubleValue];
    double maxLon = [[variable1 valueForKeyPath:@"@max.longitude"] doubleValue];

    MKCoordinateRegion region;
    region.center.latitude = (maxLat + minLat) / 2.0;
    region.center.longitude = (maxLon + minLon) / 2.0;
    region.span.latitudeDelta = (maxLat - minLat) * 1.05;
    region.span.longitudeDelta = (maxLon - minLon) * 1.05;
    map.region = region;

    for (NSDictionary *newYorkAreasDict in variable1){
        MyAnnotation *annotation = [[MyAnnotation alloc] initWithDictionary:newYorkAreasDict];
        [map addAnnotation:annotation];
        [annotation release];
    }
}

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{

    if (map.userLocation == annotation){
        return nil;
    }

    NSString *identifier = @"MY_IDENTIFIER";

    MKAnnotationView *annotationView = [map dequeueReusableAnnotationViewWithIdentifier:identifier];
    if (annotationView == nil){
        annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation 
                                                       reuseIdentifier:identifier] 
                          autorelease];
        annotationView.image = [UIImage imageNamed:@"logo.png"];
        annotationView.canShowCallout = YES;

        annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    }
    return annotationView;
}

So now, I want to implement the user's location and plot a route between the user's location and my company, but I have no clue how to code it, so I hope someone can help me out, thanks!

One way to do it would be you would need to get the GPS coordinates for the route, then you could use an MKOverlayView.

check this out for more info

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM