En el método :
Código:
- (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)ctx
{
UIImage *image = [[UIImage imageNamed:@"indigo_eiffel_blog.png"] retain];
CGImageRef imageReference = image.CGImage;
MKMapRect theMapRect = [self.overlay boundingMapRect];
CGRect theRect = [self rectForMapRect:theMapRect];
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextTranslateCTM(ctx, 0.0, -theRect.size.height);
CGContextDrawImage(ctx, theRect, imageReference);
[image release];
}
Te he marcado en negrita donde asigna la imagen. Como ves, es siempre la misma. Ya tendrás que jugar tú a hacer la llamada al webservice y coger la imagen cuando mueves el mapa (seguramente haya algún delegate que te lo indique) y meter la imagen ahí que te devuelva (por ejemplo guardándola en una variable de la clase).
No hagas la llamada al servidor en ese mismo método porque eso se llamará cada 2x3 (básicamente en cada frame) y ralentizarás muchísimo la aplicación.
No se ahora mismo qué métodos tiene MKMapView como delegate, pero estoy segura que tiene algo para saber cuándo has movido el mapa.
Y bueno si estás usando ARC, no puedes usar retain y release, pero de eso se quejará el propio compilador
Marcadores