2012-03-05 11 views

risposta

3

ho fatto qualcosa di simile per il raggiungimento di questo compito:

nel file di intestazione (h)

@interface RDViewController : UIViewController{ 

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

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

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

nel file di .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

Dove hai ottenuto questo metodo da Non riesco a vederlo nella documentazione ---> MapOverlay * mapOverlay = [[MapOverlay alloc] initWithImageData: [NSData dataWithContentsOfURL: url] withLowerLeftCoordinate: CLLocationCoordinate2DMake (21.652538062803, -127.620375523875420) withUpperRightCoordinate: CLLocationCoordinate2DMake (50.406626367301044, -66.517937876818)]; –

+0

Devi creare una classe personalizzata che contenga questi metodi Per favore controlla queste immagini di quella classe. –

+0

@iosRider Puoi verificare la mia domanda relativa alle gif animate in mkoverlays http://stackoverflow.com/questions/20558591/animated-gif-in-an-mkmapview-overlay-using-mkoverlayrenderer – wigging

2

È necessario esaminare gli overlay MapKit (MKOverlay). Nel tuo caso creerai un MKPolygon.

Sarà necessario creare un array di punti MKMap dai dati del radar meteo, quindi creare un MKPolygon da questi punti e aggiungerlo come sovrapposizione.

C'è un progetto Apple di esempio chiamato HazardMap che fa qualcosa di molto simile a quello che si sta tentando di fare, tranne in questo caso sta usando i dati del terremoto.

Guarda anche la presentazione del WWWDC 2011 "Visualizzazione delle informazioni geograficamente con MapKit". Intorno al marchio dei 30 minuti iniziano a parlare di Overlay.

Spero che questo aiuti.

+0

sì Ho controllato HazardMap ma non fornisce informazioni meteo e sta prendendo alcuni file che è qualcosa di diverso da MyRequirement.Grazie per la risposta ma hanno qualche api per questo.Grazie ancora una volta. –

+1

Supponevo che tu avessi accesso ai dati meteorologici di origine. Puoi provare http://www.programmableweb.com per trovare una fonte per i dati richiesti. –

Problemi correlati