Learn R Programming

RgoogleMaps (version 1.5.1)

XY2LatLon: computes the centered coordinate transformation from lat/lon to map tile coordinates

Description

The function XY2LatLon(MyMap, X,Y,zoom) computes the coordinate transformation from map tile coordinates to lat/lon given a map object.

Usage

XY2LatLon(MyMap, X, Y, zoom)

Value

properly scaled and centered (with respect to the center of MyMap ) coordinates

lon

longitude

lat

latitude

Arguments

MyMap

map object

X

latitude values to transform

Y

longitude values to transform

zoom

optional zoom level. If missing, taken from MyMap

Author

Markus Loecher

See Also

LatLon2XY Tile2R

Examples

Run this code


#quick test:





  zoom=12;MyMap <- list(40,-120,zoom, url="google", BBOX = list(ll=c(35,-125), ur=c(45,-115)));


  LatLon <- c(lat = 40.0123, lon = -120.0123);


  Rcoords <- LatLon2XY.centered(MyMap,LatLon["lat"],LatLon["lon"])


  newLatLon <- XY2LatLon(MyMap, Rcoords$newX, Rcoords$newY)


  max(abs(newLatLon - LatLon));





#more systematic:


 for (zoom in 2:10){


   cat("zoom: ", zoom, "\n");


   MyMap <- list(40,-120,zoom, url="google", BBOX = list(ll=c(35,-125), ur=c(45,-115)));


   LatLon <- c(lat = runif(1,-80,80), lon = runif(1,-170,170));


   Rcoords <- LatLon2XY.centered(MyMap,LatLon["lat"],LatLon["lon"])


   newLatLon <- XY2LatLon(MyMap, Rcoords$newX, Rcoords$newY)


   if(max(abs(newLatLon - LatLon)) > 0.0001) print(rbind(LatLon, newLatLon));


 }





Run the code above in your browser using DataLab