2012-03-05 11 views

Respuesta

3

he hecho algo como esto para lograr esta tarea:

en el archivo de cabecera (.h)

@interface RDViewController : UIViewController{ 

    UIImage *image ; 
} 
@property (strong, nonatomic) IBOutlet MKMapView *mapView; 

@property (strong, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicator; 

@property (strong, nonatomic) IBOutlet UIImageView *imageView; 

en el archivo .m

@implementation RDViewController 

@synthesize mapView; 

@synthesize activityIndicator; 

@synthesize imageView; 


- (void)viewDidLoad 

{ 

NSURL *url = [NSURL URLWithString: 
        @"http://radar.weather.gov/ridge/Conus/RadarImg/latest_radaronly.gif"]; 

    MapOverlay * mapOverlay = [[MapOverlay alloc] initWithImageData:[NSData dataWithContentsOfURL:url] withLowerLeftCoordinate:CLLocationCoordinate2DMake(21.652538062803, -127.620375523875420) withUpperRightCoordinate:CLLocationCoordinate2DMake(50.406626367301044, -66.517937876818)]; 

     //<LatLonBox><north>50.406626367301044</north><south>21.652538062803</south><east>-66.517937876818</east><west>-127.620375523875420</west></LatLonBox> 

    [mapView addOverlay:mapOverlay]; 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

- (void)viewDidUnload 
{ 
    [self setImageView:nil]; 
    [self setMapView:nil]; 
    [self setActivityIndicator:nil]; 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations 
    return YES; 
} 


#pragma Mark - MKOverlayDelgateMethods 

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay { 

    MapOverlay *mapOverlay = overlay; 
    MapOverlayView *mapOverlayView = [[MapOverlayView alloc] initWithOverlay:mapOverlay]; 
    return mapOverlayView; 

} 

enter image description here enter image description here

+0

De dónde sacaste este método de No puedo verlo en la documentación ---> MapOverlay * mapOverlay = [[MapOverlay alloc] initWithImageData: [NSData dataWithContentsOfURL: url] withLowerLeftCoordinate: CLLocationCoordinate2DMake (21.652538062803, -127.620375523875420) withUpperRightCoordinate: CLLocationCoordinate2DMake (50.406626367301044, -66.517937876818)]; –

+0

Debe crear una clase personalizada que contenga estos métodos. Compruebe estas imágenes de esa clase. –

+0

@iosRider ¿Podría echar un vistazo a mi pregunta relacionada con los gifs animados en mkoverlays http://stackoverflow.com/questions/20558591/animated-gif-in-an-mkmapview-overlay-using-mkoverlayrenderer – wigging

2

Necesita investigar las superposiciones de MapKit (MKOverlay). En su caso, creará un MKPolygon.

Deberá crear una matriz de MKMapPoints a partir de los datos de su radar meteorológico, luego crear un MKPolygon a partir de estos puntos y agregarlo como una superposición.

Hay un ejemplo del proyecto de Apple llamado HazardMap que hace algo muy similar a lo que está intentando hacer, excepto que en este caso está utilizando datos de terremotos.

Consulte también la presentación de WWWDC 2011 "Visualización de información geográficamente con MapKit". Alrededor de la marca de los 30 minutos comienzan a hablar de Superposiciones.

Espero que esto ayude.

+0

sí He marcado HazardMap pero no proporciona información meteorológica y está tomando algunos archivos que son algo diferente que MyRequirement. Gracias por la respuesta, pero tengo una API para esto. Gracias una vez más. –

+1

Supuse que tenía acceso a los datos meteorológicos de origen. Puede probar http://www.programmableweb.com para encontrar una fuente de los datos que necesita. –