randomorb2110
randomorb2110

Reputation: 269

iOS - Open Apple Maps with latitude and longitude directions

I am developing an application needs to open an Apple Maps session, and pass in latitude and longitude coordinates to get directions to that location from a users current location.

I know this can be done in google maps which I am already doing, but when attempting to open the URL in Apple Maps it just opens the place not the directions from a users current location to their destination.

Here is the URL scheme I have been using:

http://maps.apple.com/?ll=(someLatitude),(someLongitute)

Code:

UIApplication.sharedApplication().openURL(NSURL(string:"http://maps.apple.com/?ll=\(locationLat),\(locationlong)")!)

Any help would be greatly appreciated. Thanks!

Upvotes: 19

Views: 16072

Answers (3)

Nikaaner
Nikaaner

Reputation: 1320

Based on the larva's answer but I recommend you to use "maps://" URL scheme instead of "http://maps.apple.com/" to bypass opening Safari.

Like here:

URL(string: "maps://?saddr=\(currentLat),\(currentLong)&daddr=\(destinationLat),\(destinationLong)")

Upvotes: 1

Prabhu.Somasundaram
Prabhu.Somasundaram

Reputation: 1390

Try this code, AppleMap will open up with the directions marked from device's current location to the location specified the coordinates.

        let coordinate = CLLocationCoordinate2DMake(currentLat, currentLong)
        let mapItem = MKMapItem(placemark: MKPlacemark(coordinate: coordinate, addressDictionary:nil))
        mapItem.name = “Destination/Target Address or Name”
        mapItem.openInMapsWithLaunchOptions([MKLaunchOptionsDirectionsModeKey : MKLaunchOptionsDirectionsModeDriving])

Upvotes: 27

larva
larva

Reputation: 5148

try use

NSURL(string:"http://maps.apple.com/?saddr=\(currentLat),\(currentLong)&daddr=\(destinationLat),\(destinationLong)")!

with currentLat currentLong is users current location, and destinationLat destinationLong is destination location.

more parameters (ex: the transport type) look at here

Upvotes: 6

Related Questions