Here is my attempt. I often use GADM shapefiles, which you can directly import using the raster package. I have expanded the form file for NY, NJ and CT. You may not have to do this at the end, but it is probably best to reduce the amount of data. When I drew the map, ggplot automatically deleted the data points that remain outside the bbox of the ggmap image. Therefore, I did not have to do any additional work. I'm not sure which shapefile you used. But GADM data seems to work well with ggmap images. Hope this helps you.
library(raster) library(rgdal) library(rgeos) library(ggplot2) ### Get data (shapefile) us <- getData("GADM", country = "US", level = 1) ### Select NY and NJ states <- subset(us, NAME_1 %in% c("New York", "New Jersey", "Connecticut")) ### SPDF to DF map <- fortify(states) ## Get a map mymap <- get_map("new york city", zoom = 10, source = "stamen") ggmap(mymap) + geom_map(data = map, map = map, aes(x = long, y = lat, map_id = id, group = group))

If you just need strings, the following will be what you need.
ggmap(mymap) + geom_path(data = map, aes(x = long, y = lat, group = group))

source share