8
votes

Démarrez la navigation automatiquement avec Google Maps et Schemes d'URL Apple Maps

existe-t-il un moyen de démarrer la navigation automatiquement lors du lancement de Google Maps ou < a href = "https://developer.apple.com/library/ios/featedArticles/iphoneurlscheme_reference/maplinks/maplinks.html" rel = "Noreferrer"> Apple Maps avec un schéma d'URL sur iOS?

Je vois plusieurs paramètres facultatifs pour les deux mais aucune pour démarrer la navigation sans entrée utilisateur.


0 commentaires

3 Réponses :


4
votes

Voici comment je l'ai fait pour votre référence, mais pour Apple, je n'ai pas trouvé de moyen de démarrer la navigation via URL Schéma.

+ (void)navigateToLocation:(CLLocation*)_navLocation {
    if ([[UIApplication sharedApplication] canOpenURL:
         [NSURL URLWithString:@"comgooglemaps://"]]) {
        NSString *string = [NSString stringWithFormat:@"comgooglemaps://?daddr=%f,%f&directionsmode=driving",_navLocation.coordinate.latitude,_navLocation.coordinate.longitude];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:string]];
    } else {
        NSString *string = [NSString stringWithFormat:@"http://maps.apple.com/?ll=%f,%f",_navLocation.coordinate.latitude,_navLocation.coordinate.longitude];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:string]];
    }
}


1 commentaires

Ouvre les cartes et les centres sur la Lat, mais ne démarre pas la navigation :(



3
votes

Vous êtes correct, Google et Apple nécessitent la saisie de l'utilisateur - mais seulement pour toucher le bouton Go.

Si vous souhaitez spécifier à la fois l'emplacement de démarrage et de fin, utilisez le format suivant: p>

Apple Maps: P>

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


2 commentaires

Soyez prudent avec la mise en place de% 20 dans la chaîne, en% devrait être %% ou utiliser l'espace que ce soit


Pour Google Maps, le paramètre URL NAV = 1 devrait démarrer la navigation. Toujours à la recherche d'un moyen de le faire avec des cartes Apple.



3
votes

Swift 3 Classe d'assistance pour démarrer les cartes Apple ou 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)
    }
}


0 commentaires