Конечно, это возможно - вы просто должны сказать системе открыть ссылку на Google Maps с параметрами для начального и конечного адреса.
Вы можете попробовать использовать следующий URL-адрес Google Maps:
http://maps.google.com/maps?saddr=x,y&daddr=x,y
Итак, вы можете видеть два параметра: saddr
(начальный адрес) и
daddr
(адрес назначения). Вы устанавливаете их на пару координат, разделенных запятой.
Вот небольшой фрагмент кода, который я написал для переноса пользователя из его текущего местоположения в конкретное местоположение (в моем случае это жестко заданный код).
Это основной метод делегата местоположения, который вызывается после определения их местоположения.
- (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];
}
}
Чтобы настроить все это, вы можете добавить свойство диспетчера местоположений к своему контроллеру, а затем, когда вы захотите настроить его (скажем, в viewDidLoad
), инициализировать его следующим образом:
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
[self.locationManager startUpdatingLocation];
Вызов [[UIApplication sharedApplication] openUrl:url];
отправит его в системный обработчик URL, который обнаружит ссылку на карту Google и откроет ее в картах.
Надеюсь, что помогает