Tenho latitude e longitude que desejo abrir em meu aplicativo de mapa. Tentei este código AQUI .
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)
}
Esta função abre mapas com sucesso, mas não mostra nenhum pino. Também mostra a localização do usuário que eu não quero. Quero apenas um alfinete no mapa para a latitude e longitude fornecidas.
ios
swift
apple-maps
Dharmesh Kheni
fonte
fonte
Respostas:
Este código está funcionando bem para mim.
Para Swift 3.0:
fonte
MKLaunchOptionsMapSpanKey
é ignorado quando um ou maisMKMapItem
são adicionados ao mapa: stackoverflow.com/a/32484331/422288Se você deseja apenas fornecer instruções de direção ao usuário, esta é a sintaxe Swift mais recente em sua forma mais simples:
fonte
mapItem.openInMapsWithLaunchOptions([MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving])
Você poderia chamar a função de classe de
MKMapItem
passagem de itens lá, ela usa apenas o primeiro e o último para origem / destino de forma apropriada, se você quiser passar mais de dois itens.Swift 5, 4
ou usando extensão:
fonte
A
MKMapItem
abordagem acima funciona muito bem se você deseja controle granular sobre as informações que são exibidas no Maps.Caso contrário, o código abaixo também funciona bem:
No entanto, o código acima não permite que você envie um nome personalizado do local. Em vez disso, ele mostrará o endereço.
O código acima também permite que você navegue a partir de qualquer coordenada de origem, o que não sei se você pode fazer com a abordagem MKMapItem.
fonte
Isso funciona como um encanto para mim
fonte
Você pode usar o código abaixo para mostrar o PIN em lat, long in no mapa da Apple.
fonte
Se o que você deseja é algo simples, sem importar nenhum framework, você pode apenas criar um URL:
https://maps.apple.com/?ll=\(latitude),\(longitude)
É semelhante à resposta de @saniel-saidi, mas esta abre apenas o mapa com a localização enviada, não a coisa de navegação
fonte
Eu sei que todas as respostas estão completas, mas aqui eu tenho uma resposta que é mais fácil de copiar e colar e também dá ao usuário opções de roteamento com Apple Maps, Google Map e Waze.
Trabalhando com Swift 5+
https://stackoverflow.com/a/60930491/6449292
Pode ajudar alguém ...
fonte
Atualização da resposta prática de Daniel Saidi . Este exemplo é para informar apenas as coordenadas de destino. Os mapas obterão como origem a posição atual do usuário.
fonte