There isn't any clear answers that I could find so I wanted to give the answer that I came up with. Using an image from this URL
http://radar.weather.gov/ridge/Conus/RadarImg/latest_radaronly.gif
It gives the weather radar for the entire continental US. In order to place this image correctly on the map you need to know the coordinates of 2 points on the US that designate the bounds for the overlay. Using google maps here is the code for laying this over the map in Swift 3. You could easily edit this for mapkit as well.
let southwestCoord = CLLocationCoordinate2DMake(21.652538062803, -127.620375523875420)
let northeastCoord = CLLocationCoordinate2DMake(50.406626367301044, -66.517937876818)
let overlayBounds = GMSCoordinateBounds(coordinate: southwestCoord, coordinate: northeastCoord)
let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: image)
overlay.bearing = 0
overlay.map = self.mapView
This will overlay the latest doppler radar on top of the map. Now this doesn't take into consideration zooming and such so at certain zooms the image may be blurry nor does it remove any radar noise, certain blues. If you want to do that there is an excellent answer on SO here on replacing colors (hint: for transparent set the alpha to 0). If you replace a part of that answer with the following you'll remove the noise
let blue1 = RGBA32(red: 3, green: 0, blue: 244, alpha: 255)
let blue2 = RGBA32(red: 4, green: 233, blue: 231, alpha: 255)
let blue3 = RGBA32(red: 1, green: 159, blue: 244, alpha: 255)
let clear = RGBA32(red: 0, green: 0, blue: 0, alpha: 0)
for row in 0 ..< Int(height) {
for column in 0 ..< Int(width) {
let offset = row * width + column
if pixelBuffer[offset] == blue1 {
pixelBuffer[offset] = clear
}
if pixelBuffer[offset] == blue2 {
pixelBuffer[offset] = clear
}
if pixelBuffer[offset] == blue3 {
pixelBuffer[offset] = clear
}
}
}
Hope this helps.