Opening native google maps in Xcode

拈花ヽ惹草 提交于 2019-11-28 22:10:53

Sure, it's possible - you've just got to tell the system to open a google maps link, with parameters for the start and end address set.

You might want to try using the following google maps URL:

http://maps.google.com/maps?saddr=x,y&daddr=x,y

So you can see the two parameters are saddr (start address) and daddr (destination address). You set these to a pair of coordinates, separated by a comma.

Here is a bit of code I wrote that will take the user from their current location to a specific location (hardcoded in my case).

This is the core location delegate method which is called once their location has been established.

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
    if (newLocation.horizontalAccuracy == oldLocation.horizontalAccuracy) {
        [self.locationManager stopUpdatingLocation];
        CLLocationCoordinate2D coords = newLocation.coordinate;
        NSString *stringURL = [NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%g,%g&daddr=50.967222,-2.153611", coords.latitude, coords.longitude];
        NSURL *url = [NSURL URLWithString:stringURL];
        [[UIApplication sharedApplication] openURL:url];
    }
}

To set this all up, you could add a property of a location manager to your controller, and then when you want to set it up (say in viewDidLoad) intialise it like this:

self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
[self.locationManager startUpdatingLocation];

Calling [[UIApplication sharedApplication] openUrl:url]; will send it to the system's URL handler, which will detect it's a google maps link, and open it up in maps.

Hope that helps

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!