Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 418
Ankit Vyas Avatar asked Mar 05 '12 15:03

Ankit Vyas


2 Answers

You need investigate MapKit overlays (MKOverlay). In your case you will be creating a MKPolygon.

You will need to create an array of MKMapPoints from your weather radar data, then create a MKPolygon from these points and add it your map as an overlay.

There is a sample Apple project called HazardMap which does something very similar to what you are trying to do, except in this case it is using earthquake data.

Also check out the WWWDC 2011 presentation "Visualizing Information Geographically with MapKit". Around the 30 minute mark they start talking about Overlays.

Hope this helps.

like image 163
Andy Sinclair Avatar answered Nov 03 '22 10:11

Andy Sinclair


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 hereenter image description here

like image 45
Ankit Vyas Avatar answered Nov 03 '22 08:11

Ankit Vyas