Открытие нативных карт Google в Xcode - PullRequest
2 голосов
/ 27 ноября 2011

Привет У меня есть приложение для iPhone, использующее карты и местоположения.

Я бы хотел, чтобы пользователь мог нажимать кнопку, которая указывает направление поворота к этому месту. Я понимаю, что мне не разрешено делать это в приложении, но мне было интересно, если кто-нибудь скажет мне, можно ли сделать ссылку на собственное приложение Google Maps, которое будет вводить указания для местоположения из текущего местоположения пользователей.

Если это возможно, не могли бы вы также сказать мне, как?

любая помощь будет оценена.

Спасибо

1 Ответ

10 голосов
/ 27 ноября 2011

Конечно, это возможно - вы просто должны сказать системе открыть ссылку на 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 и откроет ее в картах.

Надеюсь, что помогает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...