Use background without labels (with the option GeoBackground -> GeoStyling["StreetMapNoLabels"]
) and add the labels as Text
primitives:
oceanlabels = Text[Style[StringRiffle[StringSplit[ToUpperCase@#["Name"]], "\n"],
24, Gray, Italic, ShowStringCharacters -> False],
GeoGridPosition[GeoPosition[#["CenterCoordinates"]], "Equirectangular"]] & /@
(Entity["Ocean", #] & /@ {"PacificOcean", "AtlanticOcean", "IndianOcean"});
continentlabels = Text[Style[StringRiffle[StringSplit[ToUpperCase@#["Name"]], "\n"],
24, Gray, Bold, ShowStringCharacters -> False],
GeoGridPosition[GeoPosition[#["CenterCoordinates"]], "Equirectangular"]] & /@
Most[EntityList["GeographicRegion"]];
GeoGraphics[{Green, Polygon@Entity["Country", "Greenland"], oceanlabels, continentlabels},
GeoRange -> "World", GeoProjection -> "Equirectangular",
GeoZoomLevel -> 1, ImageSize -> 1100,
GeoBackground -> GeoStyling["StreetMapNoLabels"]]