¿Puedo crear un MKAnnotation
, o es de solo lectura? Tengo coordenadas, pero no me resulta fácil crear manualmente un MKAnnotation
con el uso de setCoordinate
.iPhone: Crear MKAnnotation
Ideas?
¿Puedo crear un MKAnnotation
, o es de solo lectura? Tengo coordenadas, pero no me resulta fácil crear manualmente un MKAnnotation
con el uso de setCoordinate
.iPhone: Crear MKAnnotation
Ideas?
MKAnnotation es un protocolo. Por lo tanto, debe escribir su propio objeto de anotación que implemente este protocolo. Por lo que su cabecera MyAnnotation parece:
@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 puesta en práctica se parece a (MyAnnotation.m):
- (id) initWithCoordinate:(CLLocationCoordinate2D)coord
{
coordinate = coord;
return self;
}
Así añadir su anotación para el mapa:
MyAnnotation * annotation = [[[MyAnnotation alloc] initWithCoordinate:coordinate] autorelease];
[self.mapView addAnnotation:annotation];
Si no desea un título ni subtítulo en la llamada de la anotación, debe agregar el título y las propiedades de los subtítulos.
Revisa el proyecto Apple MapCallouts. Todo lo que necesita está en ese archivo: http://developer.apple.com/iphone/library/samplecode/MapCallouts/Introduction/Intro.html
Ta mucho tanto, justo lo que estaba buscando. –
En iPhone OS 4 hay una nueva clase MKPointAnnotation que es una implementación concreta del protocolo MKAnnotation.
Gracias por señalar esto joshrl –
Esto es muy útil si solo necesitas anotaciones básicas. ¡Gracias! – radven
MKPointAnnotation * pointAnnotation = [[MKPointAnnotation alloc] init]; pointAnnotation.coordinate = location.coordinate; [mkMapView addAnnotación: pointAnnotation]; –
Esto es justo lo que necesitaba. Donde pondría el - (id) initWithCoordinate: (CLLocationCoordinate2D) coord; ¿método? En mi archivo .h o .m? –
No hay problema. He actualizado la respuesta con más detalles :) – RedBlueThing
Por alguna razón, no obtengo el método '-initWithCoord:' que se encuentra cuando intento compilar y ejecutar. –