Parsimonious Möglichkeit, Nordpfeil und Maßstabsleiste zu ggmap @ hinzuzufüg

Ich versuche, mit ggmap eine Karte der Schutzgebiete zu erstellen, in denen ich mit einem Satellitenbild von Google Earth arbeite. Ich kann ein sehr zufriedenstellendes Bild erstellen, außer dass ein Nordpfeil und eine Maßstabsleiste fehlen:

Mir ist bewusst, dass es sehr umständliche Möglichkeiten gibt, diese Elemente hinzuzufügen (z. B.Hie) aber es muss doch einen sparsameren Weg geben!

Ich habe versucht mitmap.scale undnorth.arrow aber diese beiden geben mir:

Error in polygon(xb + arrow.x * s, yb + arrow.y * s, ...) : 
  plot.new has not been called yet

Ich kann beides bekommenmap.scale undnorth.arrow, um in Basis R mit @ zu arbeitplot aber dann kann ich mein Satellitenbild nicht richtig zeichnen. Ich kann auch mit @ bekommen, was ich wiarrows undtext in der Basis R, aber auch diese funktionieren in ggmap nicht.

Der verwendete Code ist unten. Sie werden das Polygon nicht haben (daher werde ich es nicht in den Code einfügen), aber Sie können das Google Earth-Bild laden und den Fehler replizieren.

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")

Von ein bisschen Lesen scheint es wie dasmap.scale undnorth.arrow -Funktionen erkennen das Fenster nicht, dasggmapie @ -Funktion wird als offenes Grafikfenster erstellt. Ich habe einige Nachforschungen angestellt und versucht, dies zu beheben, aber nichts hat funktioniert. Kann jemand eine Möglichkeit vorschlagen, um den Fehler, den ich erhalte, zu beheben, oder eine Maßstabsleiste und einen Nordpfeil in ggmap zu erhalten, ohne Hunderte von Codezeilen zu verwenden?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage