2014-09-25 9 views

Antwort

3

Hier ist, wie ich es für Ihre Referenz getan habe, aber für Apple habe ich keinen Weg gefunden, die Navigation durch URL-Schema zu starten.

+0

Öffnet den Standort der Karten und Zentren auf dem Breitengrad, startet aber nicht mit der Navigation :( – htafoya

2

Sie haben Recht, Google und Apple beide erfordern die Benutzereingabe - aber nur um die Schaltfläche zu drücken.

Wenn Sie sowohl die Start- und Zielordner angeben möchten, verwenden Sie das folgende Format:

Apple Maps:

http://maps.apple.com/maps?saddr=Current%20Location&daddr=<Your Location> 

Google Maps:

comgooglemaps-x-callback://?saddr=&daddr=<Your Location> 
+0

Seien Sie vorsichtig mit der Platzierung von% 20 in der Zeichenfolge, da% %% sein sollte oder verwenden Sie den Leerraum – htafoya

1

Swift 3 Hilfsklasse für Starten von Apple Maps oder Google Maps navigation

struct LinksHelper { 
    static func startNavigation(coordinate: CLLocationCoordinate2D) { 
     struct Links { 
      static let kGoogleMapsSchema = "comgooglemaps://" 
      static let kGoogleMaps = "\(kGoogleMapsSchema)?daddr=%f,%f&directionsmode=driving" 
      static let kAppleMaps = "https://maps.apple.com/?saddr=Current Location&daddr=%f,%f&z=10&t=s" 
     } 

     var path: String! 

     if let googleMapsSchemaUrl = URL(string:Links.kGoogleMapsSchema), UIApplication.shared.canOpenURL(googleMapsSchemaUrl) { 
      path = Links.kGoogleMaps 
     } else { 
      path = Links.kAppleMaps 
     } 
     guard let str = String(format: path, coordinate.latitude, coordinate.longitude).addingPercentEncoding(
      withAllowedCharacters: .urlQueryAllowed) else { 
       return 
     } 

     guard let url = URL(string: str) else { 
      return 
     } 

     UIApplication.shared.openURL(url) 
    } 
}