Как вызвать iPhone карты для направлений с текущим местоположением в качестве начального адреса - PullRequest
72 голосов
/ 23 февраля 2009

Я знаю, что можно запустить приложение карт iPhone, вызвав openURL по URL-адресу карт Google с параметрами saddr и daddr со строками местоположения или широтой / долготой (см. Пример ниже).

Но мне интересно, возможно ли сделать начальный адрес закладкой "Текущее местоположение" карт, чтобы я мог использовать код обработки местоположения приложения Карты . Мой поиск в Google оказался довольно бесплодным.

Например:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%@&daddr=%@", myLatLong, latlong]]];

За исключением чего-то, чтобы вызвать текущую закладку местоположения вместо myLatLong.

Ответы [ 16 ]

2 голосов
/ 27 мая 2010

Вы можете сделать это сейчас в формате html только с URL-адреса только на вашем мобильном устройстве. Вот пример . Круто то, что если вы превратите это в qr-код, у вас есть возможность, чтобы кто-то узнал, куда вы направляетесь, где бы он ни находился, просто отсканировав его на своем телефоне.

1 голос
/ 10 ноября 2015

Мое предложение будет использовать OpenInGoogleMaps-iOS , так как это актуальный выбор (к ноябрю 2015 года), он поддерживает установку какао-бобов, и вы готовы сделать несколько щелчков мыши.

Установка с использованием: pod "OpenInGoogleMaps"

Требуется в заголовочном файле, используя: #import "OpenInGoogleMapsController.h"

Пример кода ниже:

/*In case the user does NOT have google maps, then apple maps shall open*/
[OpenInGoogleMapsController sharedInstance].fallbackStrategy = kGoogleMapsFallbackAppleMaps;    

/*Set the coordinates*/
GoogleMapDefinition *definition = [[GoogleMapDefinition alloc] init];   
CLLocationCoordinate2D metsovoMuseumCoords;     //coordinates struct
metsovoMuseumCoords.latitude = 39.770598;
metsovoMuseumCoords.longitude = 21.183215;
definition.zoomLevel = 20;
definition.center = metsovoMuseumCoords;        //this will be the center of the map

/*and here we open the map*/
[[OpenInGoogleMapsController sharedInstance] openMap:definition];       
1 голос
/ 15 декабря 2013

В текущей версии Google Maps просто пропустите параметр sadr:

saddr:… Если значение оставить пустым, будет использовано текущее местоположение пользователя.

https://developers.google.com/maps/documentation/ios/urlscheme

1 голос
/ 13 сентября 2012

Для приложения iOS6 Maps вы можете просто использовать тот же URL, указанный выше http://maps.google.com/maps?saddr=%f,%f&daddr=%@

но вместо URL-адреса карт Google вы используете URL-адрес с maps://, в результате чего получается следующий URL: maps://saddr=%f,%f&daddr=%@.

Использование «текущего местоположения» не работает, поэтому я остался с координатами.

Еще одна хорошая вещь: она обратно совместима: на iOS5 запускает приложение Google Maps.

0 голосов
/ 18 сентября 2017

Если вы не предоставите местоположение источника, оно будет принимать текущее местоположение в качестве источника. Попробуйте ниже код-

let urlString = "http://maps.apple.com/maps?daddr=(destinationLocation.latitude),(destinationLocation.longitude)&dirflg=d" }

UIApplication.shared.openURL (URL (строка: urlString)!)

0 голосов
/ 11 января 2013

Я ответил на это в другой теме. ( Текущее местоположение не работает с Apple Maps IOS 6 ). Сначала нужно получить координаты текущего местоположения, а затем использовать его для создания URL-адреса карты.

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