ios - ändern - karten app iphone verlauf löschen




So öffnen Sie Karten App programmgesteuert mit Koordinaten in kürzester Zeit? (4)

Das wirkt für mich wie ein Zauber

let coordinate = CLLocationCoordinate2DMake(theLatitude, theLongitude)
let region = MKCoordinateRegionMake(coordinate, MKCoordinateSpanMake(0.01, 0.02))
let placemark = MKPlacemark(coordinate: coordinate, addressDictionary: nil)
let mapItem = MKMapItem(placemark: placemark)
let options = [
    MKLaunchOptionsMapCenterKey: NSValue(mkCoordinate: region.center),
    MKLaunchOptionsMapSpanKey: NSValue(mkCoordinateSpan: region.span)]
mapItem.name = theLocationName
mapItem.openInMaps(launchOptions: options)

Ich habe Breiten- und Längengrade, die ich in meine Kartenanwendung öffnen möchte. Ich habe diesen Code von HERE aus probiert.

    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 keine PIN. Es zeigt auch den Standort des Benutzers, den ich nicht möchte. Ich möchte nur einen Pin auf der Karte für den angegebenen Längen- und Breitengrad.


Der MKMapItem Ansatz oben MKMapItem sich hervorragend, wenn Sie die in Maps angezeigten Informationen genau steuern möchten.

Ansonsten funktioniert der folgende Code auch gut:

// Open and show coordinate
let url = "http://maps.apple.com/maps?saddr=\(coord.latitude),\(coord.longitude)"
UIApplication.shared.openURL(URL(string:url)!)

// Navigate from one coordinate to another
let url = "http://maps.apple.com/maps?saddr=\(from.latitude),\(from.longitude)&daddr=\(to.latitude),\(to.longitude)"
UIApplication.shared.openURL(URL(string:url)!)

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 einer beliebigen Quellkoordinate aus navigieren. Ich weiß nicht, ob Sie mit dem MKMapItem-Ansatz arbeiten können.


Sie können Klassenfunktionen von MKMapItem die Elemente übergeben, die nur die erste und letzte für die Quelle / das Ziel verwenden, wenn Sie mehr als zwei Elemente übergeben möchten.

Schnell 4

let source = MKMapItem(placemark: MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: lat, longitude: lng)))
source.name = "Source"

let destination = MKMapItem(placemark: MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: lat, longitude: lng)))
destination.name = "Destination"

MKMapItem.openMaps(with: [source, destination], launchOptions: [MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving])

Sie können den Code unten verwenden, um die PIN in der Apple-Karte anzuzeigen.

let coordinates = CLLocationCoordinate2DMake(-37.848854,144.990295)

let regionSpan =   MKCoordinateRegionMakeWithDistance(coordinates, 1000, 1000)

let placemark = MKPlacemark(coordinate: coordinates, addressDictionary: nil)

let mapItem = MKMapItem(placemark: placemark)

mapItem.name =Desired place”

mapItem.openInMaps(launchOptions:[
MKLaunchOptionsMapCenterKey: NSValue(mkCoordinate: regionSpan.center)
] as [String : Any])






apple-maps