I’ve modified some routines so that we are always grabbing a roughly equal area regardless of the latitude. Basically, you do this: getLonScaleFactor <- function(lat){ kmAtEq <-111.3195 kmAtLat <- 111.41288*cos(lat*DEGREES.TO.RADIANS)-.09350*cos(3*lat*DEGREES.TO.RADIANS)+0.00012*cos(5*lat*DEGREES.TO.RADIANS) return(kmAtEq/kmAtLat) } # the above function returns a scale factor for km per degree @ a given latitude getExtent <-function(x,halfLength=.5,LonLat) { lonAdjust<-getLonScaleFactor(LonLat)*halfLength yMin <- max(ymin(x),LonLat