Convert from x-y coordinates to longitude and latitude. This is normally called internally within oce; see ‘Bugs’. A projection must already have been set up, by a call to mapPlot() or lonlat2map(). It should be noted that not all projections are handled well; see ‘Bugs’.

map2lonlat(x, y, init = NULL)



vector containing the x component of points in the projected space, or a list containing items named x and y, in which case the next argument is ignored.


vector containing the y coordinate of points in the projected space (ignored if x is a list, as described above).


vector containing the initial guesses for longitude and latitude, presently ignored.


A list containing longitude and latitude, with NA values indicating points that are off the globe as displayed.


oce uses rgdal::project() in the rgdal package to handle projections. Only those projections that have inverses are permitted within oce, and even those can sometimes yield errors, owing to limitations in rgdal. On i386/windows machines, the version of rgdal must be 1.3-9 or higher, to prevent an error with map2lonlat.

See also

lonlat2map() does the inverse operation.

A map must first have been created with mapPlot().

Other functions related to maps: formatPosition(), lonlat2map(), lonlat2utm(), mapArrows(), mapAxis(), mapContour(), mapCoordinateSystem(), mapDirectionField(), mapGrid(), mapImage(), mapLines(), mapLocator(), mapLongitudeLatitudeXY(), mapPlot(), mapPoints(), mapPolygon(), mapScalebar(), mapText(), mapTissot(), oceCRS(), shiftLongitude(), usrLonLat(), utm2lonlat()


canProject <- .Platform$OS.type!="windows"&&requireNamespace("rgdal") if (canProject) { library(oce) ## Cape Split, in the Minas Basin of the Bay of Fundy cs <- list(longitude=-64.49657, latitude=45.33462) xy <- lonlat2map(cs, projection="+proj=merc") map2lonlat(xy) }
#> $longitude #> [1] -64.49657 #> #> $latitude #> [1] 45.33462 #>