Как заставить приложение Apple Maps (не MapKit) добавить аннотацию?

Довольно просто добавить аннотацию к представлению MapKit, которое находится внутри вашего приложения.

theMap: MKMapView!

let pa = MKPointAnnotation()
pa.title = "title!!" etc
theMap.addAnnotation(pa)

Но как, черт возьми, вы заставляете приложение "Карты" добавлять аннотации?

Вот как открыть приложение "Карты" по определенному адресу.

func appleMapApp() {
    quickAddressText = "123 Smith St 90210"
    let bottomText = "This shows at BOTTOM Of Maps App screen."

    let g = CLGeocoder()
    g.geocodeAddressString(quickAddressText) { placemarks, error in

        if let found = placemarks?.first, let lok = found.location {

            let p = MKPlacemark(coordinate: lok.coordinate, addressDictionary: nil)

            let mapItem = MKMapItem(placemark: p)
            mapItem.name = bottomText

            mapItem.openInMaps(launchOptions: showing(location: lok))
        }
    }
}

// convenient function...
func showing(location: CLLocation, meters m: CLLocationDistance = 1000)->[String : Any]? {
    let cr = MKCoordinateRegionMakeWithDistance(location.coordinate, m,m)
    let options = [
        MKLaunchOptionsMapCenterKey: NSValue(mkCoordinate: cr.center),
        MKLaunchOptionsMapSpanKey: NSValue(mkCoordinateSpan: cr.span)
    ]
    return options
}

Это здорово, но как, черт возьми, вы проходите в MKPointAnnotation к фактическому приложению Карт??

(Опять же - легко добавить MKPointAnnotation в виде карты в вашем собственном приложении.)

Есть идеи? Это действительно возможно?

1 ответ

Решение

Я думаю, что openInMaps ограничивает вас только пятью вариантами запуска. Но мне интересно, можете ли вы открыть Apple Maps оригинальным способом, openURL и maps.apple.com/maps, как показано в этом вопросе SO. Однако в новых версиях iOS вам также необходимо зарегистрировать URL-адрес, который вы используете, в своем info.plist в разделе "Типы URL... Схемы URL" или "LSApplicationQueriesSchemes". Возможно, вы сможете передать аннотацию в качестве параметра URL.

Другие вопросы по тегам