¿Cómo abrir llamar a cabo MKAnnotationView programación? (IPhone, MapKit)

votos
26

Quiero abrir la llamada para una MKPinAnnotationViewprogramación. Por ejemplo, me cae 10 se fija en el mapa, y quieren abrir el más cercano a mí. ¿Cómo voy a ir haciendo esto?

Apple ha especificado el parámetro 'selected' para MKAnnotationView's, pero desalienta el establecimiento directamente (esto no funciona, lo intentó).

Para el resto MKAnnotationViewsólo tiene un setHighlighted ( misma historia ), y la lata ShowCalloutmétodo ..

¿Alguna pista si esto es posible en absoluto?

Publicado el 03/02/2010 a las 18:16
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
77

En su mapViewController crear un método de acción:

- (void)openAnnotation:(id)annotation 
{
    //mv is the mapView
    [mv selectAnnotation:annotation animated:YES];

}

A continuación, puede determinar la anotación más cercano basado en la ubicación actual y caminando por las anotaciones disponibles en la matriz.

[mv annotations];

Una vez que se calcula la anotación más cercano, llame al:

[self openAnnotation:closestAnnotation];

El MAPview debe desplazar automáticamente al colocar su anotación en el centro del área de visualización.

Respondida el 26/02/2010 a las 05:45
fuente por usuario

votos
1

En este veloz 3 se actualiza para:

func openAnnotation(annotation: MkAnnotation) {
_ = [mapView .selectAnnotation(annotation, animated: true)]
}

y puede ser llamado usando cualquier anotación (esto abrirá la vista de llamada anotación e intentar centrar la anotación en el mapa)

Por ejemplo, usando la segunda anotación en una lista hipotética de anotaciones.

openAnnotation(annotation: mapView.annotations[1])
Respondida el 23/05/2017 a las 13:14
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more