The basic idea is using GeoGraphics twice. This basically allows you to put any part of a map inside any geo polygon of another map.
The first GeoGraphics produces a rectangular map (in lat-lon coordinates; note the use of GeoProjection->"Equirectangular") with the exact lat-lon ranges corresponding to the region your are interested in (note the use of GeoRange->visible). The result is given as a GeoGraphics[Graphics[...], ...] object. We take the Graphics[...] and rasterize it as an Image with enough resolution.
Finally, with the second GeoGraphics, we take the resulting Image and place it inside the geo visible region using GeoStyling[{"GeoImage", image}]. Note the use of "GeoImage" (instead of the alternative "Image"); this is to project that image to the geo projection chosen by the second GeoGraphics.
If you have questions about the process, do not hesitate to ask.
Jose.