Ich habe Breiten- und Längengrade, die ich in meiner Kartenanwendung öffnen möchte. Ich habe diesen Code HIER ausprobiert .
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)
}
Diese Funktion öffnet erfolgreich Karten, zeigt jedoch keinen Pin an. Außerdem wird der Benutzerstandort angezeigt, den ich nicht möchte. Ich möchte nur eine Stecknadel auf der Karte für den angegebenen Breiten- und Längengrad.
ios
swift
apple-maps
Dharmesh Kheni
quelle
quelle
Antworten:
Dieser Code funktioniert gut für mich.
Für schnelles 3.0:
quelle
MKLaunchOptionsMapSpanKey
ignoriert wird, wenn einer oder mehrereMKMapItem
zur Karte hinzugefügt werden: stackoverflow.com/a/32484331/422288Wenn Sie dem Benutzer nur eine Wegbeschreibung geben möchten, finden Sie hier die neueste Swift-Syntax in ihrer einfachsten Form:
quelle
mapItem.openInMapsWithLaunchOptions([MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving])
Sie können die Klassenfunktion zum
MKMapItem
Übergeben von Elementen dort aufrufen. Sie verwendet nur first und last für Quelle / Ziel entsprechend, wenn Sie mehr als zwei Elemente übergeben möchten.Swift 5, 4
oder mit Erweiterung:
quelle
Der
MKMapItem
obige Ansatz funktioniert hervorragend, wenn Sie eine detaillierte Kontrolle über die in Maps angezeigten Informationen wünschen.Ansonsten funktioniert der folgende Code auch hervorragend:
Mit dem obigen Code können Sie jedoch keinen benutzerdefinierten Namen des Ortes senden. Stattdessen wird die Adresse angezeigt.
Mit dem obigen Code können Sie auch von jeder Quellkoordinate aus navigieren, was ich nicht weiß, ob Sie mit dem MKMapItem-Ansatz arbeiten können.
quelle
Das wirkt für mich wie ein Zauber
quelle
Sie können den folgenden Code verwenden, um die PIN auf lat, long in der Apple-Karte anzuzeigen.
quelle
Wenn Sie etwas Einfaches möchten, ohne ein Framework zu importieren, können Sie einfach eine URL erstellen:
https://maps.apple.com/?ll=\(latitude),\(longitude)
Ist ähnlich wie @ saniel-sagtei Antwort, aber diese öffnet nur die Karte mit dem gesendeten Standort, nicht die Navigationssache
quelle
Ich weiß, dass alle Antworten vollständig sind, aber hier habe ich eine Antwort erhalten, die einfacher zu kopieren und einzufügen ist und den Benutzern Optionen für das Routing mit Apple Maps, Google Map und Waze bietet.
Arbeiten mit Swift 5+
https://stackoverflow.com/a/60930491/6449292
Könnte jemandem helfen ...
quelle
Update zur praktischen Antwort von Daniel Saidi . In diesem Beispiel werden nur die Zielkoordinaten angegeben. Karten erhalten als Ursprung die aktuelle Position des Benutzers.
quelle