iPhone: Crear MKAnnotation
-
04-10-2019 - |
Pregunta
¿Puedo crear una MKAnnotation
, o es de sólo lectura? Tengo las coordenadas, pero no me es fácil crear manualmente un MKAnnotation
con el uso de setCoordinate
.
Las ideas?
Solución
MKAnnotation es un protocolo. Por lo que necesita para escribir su propia anotación objeto que implementa este protocolo. Por lo que sus MyAnnotation cabecera se ve así:
@interface MyAnnotation : NSObject<MKAnnotation> {
CLLocationCoordinate2D coordinate;
}
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
// add an init method so you can set the coordinate property on startup
- (id) initWithCoordinate:(CLLocationCoordinate2D)coord;
y su apariencia como de implementación (MyAnnotation.m):
- (id) initWithCoordinate:(CLLocationCoordinate2D)coord
{
coordinate = coord;
return self;
}
Así que para añadir su anotación para el mapa:
MyAnnotation * annotation = [[[MyAnnotation alloc] initWithCoordinate:coordinate] autorelease];
[self.mapView addAnnotation:annotation];
Si quieres probar un título y subtítulo de la llamada de anotación, es necesario agregar las propiedades del título y subtítulo.
Otros consejos
En el iPhone OS 4 hay una nueva clase MKPointAnnotation que es una implementación concreta del protocolo MKAnnotation.
Comprobar manzana MapCallouts. Todo lo que necesita es en ese archivo: http://developer.apple.com/iphone/library/samplecode /MapCallouts/Introduction/Intro.html