I am building an app that can open the Maps app with directions from the user's current position to another position. The code looks like this:
- (id)resolveDirectionsFromCoordinate:(CLLocationCoordinate2D)startCoordinate toCoordinate:(CLLocationCoordinate2D)endCoordinate
{
NSString* url = [NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f",
startCoordinate.latitude, startCoordinate.longitude,
endCoordinate.latitude, endCoordinate.longitude];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
return nil;
}
Thos works well in iOS 5.x. In iOS 6, however, this brings up Safari instead, since Maps no longer uses Google Maps.
Does anyone know which URL I should call in iOS 6?
Get directions for driving Do one of the following: Say something like “Hey Siri, give me driving directions home.” Learn how to ask Siri. Tap your destination (such as a search result in Maps or a landmark on a map), or touch and hold anywhere on the map, then tap the directions button.
You may need to update your Google Maps app, connect to a stronger Wi-Fi signal, recalibrate the app, or check your location services. You can also reinstall the Google Maps app if it isn't working, or simply restart your iPhone or Android phone.
The Apple Documentation recommends using the equivalent maps.apple.com URL Scheme
so use
http://maps.apple.com/maps?saddr=%f,%f&daddr=%f,%f
instead of
http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f
to be backwards compatible your code would be
NSString* versionNum = [[UIDevice currentDevice] systemVersion];
NSString *nativeMapScheme = @"maps.apple.com";
if ([versionNum compare:@"6.0" options:NSNumericSearch] == NSOrderedAscending){
nativeMapScheme = @"maps.google.com";
}
NSString* url = [NSString stringWithFormat: @"http://%@/maps?saddr=%f,%f&daddr=%f,%f", nativeMapScheme startCoordinate.latitude, startCoordinate.longitude,
endCoordinate.latitude, endCoordinate.longitude];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
Alternatively you could also use the maps://saddr=%f,%f&daddr=%f,%f
scheme but it does not appear support the full range of parameters.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With