Ответ 1
В документации не говорится, что можно пройти предварительно настроенный путь к встроенному приложению Карт. Таким образом, невозможно делать то, что вы хотите.
Если это недокументированный способ достижения этого, я хотел бы знать.
Я пытаюсь отобразить все возможные маршруты между точками A и B в моем приложении Swift (цель iOS 8+). Я разрешаю пользователю выбирать любой из возможных маршрутов в моем приложении. Затем я хотел бы, чтобы пользователь мог перемещаться по выбранному маршруту (MKRoute) в приложении Apple Maps, используя
var fullRouteResponse:MKDirectionsResponse? //This variable has MKRoute information
@IBAction func openInAppleMaps(sender: AnyObject)
{
let placemark = MKPlacemark(coordinate: destinationCoordinate!, addressDictionary: nil)
mapItem = MKMapItem(placemark: placemark)
mapItem.openInMapsWithLaunchOptions(
[MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving,
MKLaunchOptionsMapTypeKey: MKMapType.Standard.rawValue,
MKLaunchOptionsShowsTrafficKey: true ])
}
Это прекрасно открывает приложение "Карты", но я не могу понять, как передать конкретную выбранную информацию MKRoute, чтобы пользователь не перебирал все возможные маршруты в приложении Apple maps.
Я не уверен, что это возможно, поэтому любые указатели действительно помогут. Спасибо!
В документации не говорится, что можно пройти предварительно настроенный путь к встроенному приложению Карт. Таким образом, невозможно делать то, что вы хотите.
Если это недокументированный способ достижения этого, я хотел бы знать.
Да, вы можете сделать это с помощью MapLink:
В соответствии с MapLink Documentation вы можете легко заполнить параметры "saddr" и "daddr". Вот так:
if (UIApplication.sharedApplication().canOpenURL(NSURL(string:"http://maps.apple.com")!)) {
UIApplication.sharedApplication().openURL(NSURL(string:
"http://maps.apple.com:/?saddr=\(YOUR_SOURCE_LATITUDE),\(YOUR_SOURCE_LONGITUDE)&daddr=\(YOUR_DESTINATION_LATITUDE),\(YOUR_DESTINATION_LONGITUDE)&dirflg=d")!)
}