Search code examples
iosipadmkmapviewweather-apiradar-chart

How can i integrate Radar Overlay on MapView?


I want to Integrate Weather radar on my MapView.Please anyone help on doing this task.I have done so many googling but not get succeed.Please check this image i wanted to do like this. enter image description here


Solution

  • I have done something like this for achieving this task:

    in header file(.h)

    @interface RDViewController : UIViewController{
    
        UIImage *image ;
    }
    @property (strong, nonatomic) IBOutlet MKMapView *mapView;
    
    @property (strong, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicator;
    
    @property (strong, nonatomic) IBOutlet UIImageView *imageView; 
    

    in .m file

    @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