Mam szerokość i długość geograficzną, które chcę otworzyć w mojej aplikacji mapowej. Wypróbowałem ten kod TUTAJ .
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)
}
Ta funkcja pomyślnie otwiera mapy, ale nie pokazuje żadnego pinezki. Pokazuje również lokalizację użytkownika, której nie chcę. Chcę mieć tylko pinezkę na mapie dla podanej szerokości i długości geograficznej.
ios
swift
apple-maps
Dharmesh Kheni
źródło
źródło
Odpowiedzi:
Ten kod działa dobrze dla mnie.
Dla Swift 3.0:
źródło
MKLaunchOptionsMapSpanKey
jest ignorowany, gdy jeden lub więcejMKMapItem
zostanie dodanych do mapy: stackoverflow.com/a/32484331/422288Jeśli chcesz tylko wskazać użytkownikowi wskazówki dotyczące dojazdu, oto najnowsza składnia języka Swift w jej najprostszej formie:
źródło
mapItem.openInMapsWithLaunchOptions([MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving])
Mógłbyś wywołać funkcję klasy
MKMapItem
przekazywania tam elementów, używa ona tylko pierwszego i ostatniego odpowiednio dla źródła / przeznaczenia, jeśli chcesz przekazać więcej niż dwa elementy.Swift 5, 4
lub używając rozszerzenia:
źródło
Powyższe
MKMapItem
podejście sprawdza się świetnie, jeśli chcesz mieć szczegółową kontrolę nad informacjami wyświetlanymi w Mapach.W przeciwnym razie poniższy kod również działa świetnie:
Jednak powyższy kod nie pozwala na przesłanie niestandardowej nazwy miejsca. Zamiast tego pokaże adres.
Powyższy kod pozwala również na nawigację z dowolnego źródła współrzędnych, czego nie wiem, czy możesz to zrobić z podejściem MKMapItem.
źródło
To działa jak urok dla mnie
źródło
Możesz użyć poniższego kodu, aby wyświetlić kod PIN na szerokości, długo w mapie Apple.
źródło
Jeśli chcesz czegoś prostego bez importowania frameworka, możesz po prostu utworzyć adres URL:
https://maps.apple.com/?ll=\(latitude),\(longitude)
Jest podobna do odpowiedzi @ saniel-saidi, ale ta otwiera tylko mapę z wysłaną lokalizacją, a nie nawigację
źródło
Wiem, że wszystkie odpowiedzi są kompletne, ale tutaj otrzymałem odpowiedź, która jest łatwiejsza do skopiowania, wklejania, a także daje użytkownikowi opcje trasowania z Apple Maps, Google Map i Waze.
Praca z Swift 5+
https://stackoverflow.com/a/60930491/6449292
Może komuś pomóc ...
źródło
Zaktualizuj do praktycznej odpowiedzi Daniela Saidiego . Ten przykład służy do podania tylko współrzędnych celu. Mapy jako źródło przyjmą aktualną pozycję użytkownika.
źródło