If you can live without Google Maps, there are easy, immediate alternatives (I'd've included CloudMade but I don't have an enterprise account):
library(ggmap)
loc <- c(-96, 29.4, -94, 30.2)
# gmaps
tx_map_gmaps <- get_map(location=loc, source="google", maptype="terrain")
gg <- ggmap(tx_map_gmaps)
gg
# openstreetmap
tx_map_osm <- get_map(location=loc, source="osm")
gg <- ggmap(tx_map_osm)
gg
# stamen
tx_map_stamen <- get_map(location=loc, source="stamen", maptype="toner")
gg <- ggmap(tx_map_stamen)
gg
And, if you're willing to fiddle with initial zoom settings & then cropping (and, perhaps, some tile graininess), you can do it with Google Maps:
tx_map_gmaps <- get_map(location=loc, source="google", maptype="terrain")
gg <- ggmap(tx_map_gmaps)
gg <- gg + scale_y_continuous(limits=c(29.5, 30.0))
gg
(I didn't fiddle with said initial zoom, but you shld be able to get the idea.)