Передача строки из моего приложения в Apple Maps для поиска - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь выяснить, как лучше всего передать строковое значение яблочным картам, чтобы я мог найти его. Я работаю над приложением в классе, которое извлекает случайную строку из массива, и я хочу иметь возможность вызывать карты Apple, которые уже есть на устройстве, и искать любую выбранную строку. Я посмотрел MKLocalSearchRequest и думаю, что это может быть самым простым вариантом, но я просто не уверен, как интегрировать его с Apple Maps вместо использования его с mapkitview внутри приложения. Я обнаружил, что этот метод может сработать, но я просто не знаю, как его объявить.

 class func openMaps(with mapItems: [MKMapItem], 
 launchOptions: [String : Any]? = nil) -> Bool

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

У вас есть много вариантов сделать это:

import MapKit

Первый

UIApplication.shared.openURL(NSURL(string:
    "comgooglemaps://?saddr=&daddr=\(place.latitude),\(place.longitude)&directionsmode=driving")! as URL)

Или

@IBAction func action(_ sender: Any) {
    let latitude: CLLocationDegrees = 37.2
    let longitude: CLLocationDegrees = 22.9

    let regionDistance:CLLocationDistance = 10000
    let coordinates = CLLocationCoordinate2DMake(latitude, longitude)
    let regionSpan = MKCoordinateRegionMakeWithDistance(coordinates, regionDistance, regionDistance)
    let options = [
        MKLaunchOptionsMapCenterKey: NSValue(mkCoordinate: regionSpan.center),
        MKLaunchOptionsMapSpanKey: NSValue(mkCoordinateSpan: regionSpan.span)
    ]
    let placemark = MKPlacemark(coordinate: coordinates, addressDictionary: nil)
    let mapItem = MKMapItem(placemark: placemark)
    mapItem.name = "Place Name"
    mapItem.openInMaps(launchOptions: options)
    }
0 голосов
/ 10 декабря 2018

Свифт 4

Используйте это:

UIApplication.shared.open(URL(string:"http://maps.apple.com/?address=yourAddress")!)
0 голосов
/ 02 мая 2018
import CoreLocation

Затем в viewDidLoad:

    let geocoder = CLGeocoder()

    let locationString = "London"

    geocoder.geocodeAddressString(locationString) { (placemarks, error) in
        if let error = error {
            print(error.localizedDescription)
        } else {
            if let location = placemarks?.first?.location {
                let query = "?ll=\(location.coordinate.latitude),\(location.coordinate.longitude)"
                let urlString = "http://maps.apple.com/".appending(query)
                if let url = URL(string: urlString) {
                    UIApplication.shared.open(url, options: [:], completionHandler: nil)
                }
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...