I am trying to use ggmap to create a map of the protected areas in which I work, with a satellite image from Google Earth below. I can make a very satisfactory image, except that he lacks a north arrow and a scale:

I know that there are very long sophisticated ways to add these elements (for example, here ), but, of course, there should be a more mean way to do this!
I tried using map.scale and north.arrow , but they both give me:
Error in polygon(xb + arrow.x * s, yb + arrow.y * s, ...) : plot.new has not been called yet
I can get both map.scale and north.arrow to work in the R database using plot , but then I can not correctly display the image of my satellite. I can also get what I want using arrows and text in the R base, but again they will not work in ggmap.
The code I'm using is below. You wonβt have a polygon (so I wonβt include it in the code), but you can upload a Google Earth image and replicate the error.
library(rgdal) library(ggmap) library(GISTools) # Load satellite picture map.centre <- c(lon = 35, lat = -2.5) map <- get_map(location=map.centre, source="google", maptype="satellite", zoom = 8) # Plot map ggmap(map, extent= "device") map.scale(xc= 34, yc= -3, len= 10, units= "Kilometers", ndivs= 4, tcol= "black", scol= "black", sfcol="black") north.arrow(xb= 35.5, yb= -1, len=100, lab="N")
From a small number of readings, it seems that the map.scale and north.arrow do not recognize the window that the ggmap function creates as an open graphic window. I did some research and tried to fix it, but nothing worked. Can anyone suggest a way to fix the error I get, or get a scale scale and north arrow in ggmap without using hundreds of lines of code?