J'ai la latitude et la longitude que je souhaite ouvrir dans mon application cartographique. J'ai essayé ce code ICI .
func goToMap(){
var lat1 : NSString = self.venueLat
var lng1 : NSString = self.venueLng
var latitude:CLLocationDegrees = lat1.doubleValue
var longitude:CLLocationDegrees = lng1.doubleValue
var coordinate = CLLocationCoordinate2DMake(latitude, longitude)
var placemark : MKPlacemark = MKPlacemark(coordinate: coordinate, addressDictionary:nil)
var mapItem:MKMapItem = MKMapItem(placemark: placemark)
mapItem.name = "Target location"
let launchOptions:NSDictionary = NSDictionary(object: MKLaunchOptionsDirectionsModeDriving, forKey: MKLaunchOptionsDirectionsModeKey)
var currentLocationMapItem:MKMapItem = MKMapItem.mapItemForCurrentLocation()
MKMapItem.openMapsWithItems([currentLocationMapItem, mapItem], launchOptions: launchOptions)
}
Cette fonction ouvre les cartes avec succès mais ne montre aucune épingle. Il montre également l'emplacement de l'utilisateur que je ne veux pas. Je veux seulement une épingle sur la carte pour la latitude et la longitude fournies.
ios
swift
apple-maps
Dharmesh Kheni
la source
la source
Réponses:
Ce code fonctionne très bien pour moi.
Pour swift 3.0:
la source
MKLaunchOptionsMapSpanKey
soit ignoré lorsqu'un ou plusieursMKMapItem
sont ajoutés à la carte: stackoverflow.com/a/32484331/422288Si vous souhaitez simplement donner à l'utilisateur des indications routières, voici la dernière syntaxe Swift dans sa forme la plus simple:
la source
mapItem.openInMapsWithLaunchOptions([MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving])
Vous pouvez appeler la fonction de classe pour y
MKMapItem
passer des éléments, elle n'utilise que le premier et le dernier pour la source / destination de manière appropriée, si vous voulez passer plus de deux éléments.Swift 5, 4
ou en utilisant l'extension:
la source
L'
MKMapItem
approche ci-dessus fonctionne très bien si vous souhaitez un contrôle granulaire sur les informations affichées dans Maps.Sinon, le code ci-dessous fonctionne également très bien:
Cependant, le code ci-dessus ne vous permet pas d'envoyer un nom personnalisé du lieu. Au lieu de cela, il affichera l'adresse.
Le code ci-dessus vous permet également de naviguer à partir de n'importe quelle coordonnée source, ce que je ne sais pas si vous pouvez faire avec l'approche MKMapItem.
la source
Cela fonctionne comme un charme pour moi
la source
Vous pouvez utiliser le code ci-dessous pour afficher le code PIN sur lat, long dans la carte Apple.
la source
Si ce que vous voulez est quelque chose de simple sans importer de framework, vous pouvez simplement créer une URL:
https://maps.apple.com/?ll=\(latitude),\(longitude)
Est similaire à la réponse @ saniel-saidi mais celle-ci ouvre uniquement la carte avec l'emplacement envoyé, pas la navigation
la source
Je sais que toutes les réponses sont complètes, mais ici, j'ai une réponse qui est plus facile à copier-coller et qui donne également aux utilisateurs des options de routage avec Apple Maps, Google Map et Waze.
Travailler avec Swift 5+
https://stackoverflow.com/a/60930491/6449292
Pourrait aider quelqu'un ...
la source
Mise à jour de la réponse pratique de Daniel Saidi . Cet exemple sert uniquement à indiquer les coordonnées de destination. Les cartes obtiendront comme origine la position actuelle de l'utilisateur.
la source