2017-04-18 5 views
0

Ich habe einen Stil für die Verwendung mit ggmap mit https://mapstyle.withgoogle.com/ angepasst. Meine Frage ist, wie man den JSON in meinen R-Code integriert.Benutzerdefinierte Kartenart mit ggmap

Ich habe versucht, den folgenden Code ohne Erfolg:

map <- get_googlemap(center = 'London', zoom = 15, 
        style = c('element:labels|visibility:off', 'feature:road.local|visibility:off')) 
ggmap(map) 

Es arbeitet entweder mit dem Stil allein Befehle aber nicht zusammen. Wo ist der Fehler in meinem Code?

Antwort

0

Ich bin mir nicht sicher, wie genau ggmap erwartet, Styling zu erhalten, aber get_googlemap hat einen Parameter, um eine Zeichenfolge in die URL zu injizieren, die an das Google Maps API gesendet wird. Basierend auf der Google Maps docs, scheinen Ihre Strings für das Injizieren korrekt formatiert zu sein. Sie können jede dieser Stilspezifikationen in eine einzige Zeichenfolge komprimieren und diese dem inject-Parameter und nicht dem style-Parameter zuweisen.

So

stylestr <- sprintf("&style=%s", c("element:labels|visibility:off", "feature:road.local|visibility:off") %>% paste(collapse = "")

wird die Zeichenfolge &style=element:labels|visibility:off&style=feature:road.local|visibility:off

ergeben, die als inject Parameter verwendet werden können. (Verwendete ich sprintf und paste, um es für das Hinzufügen einer ganzen Reihe von Stil-Spezifikationen leicht.)

0

ich entwickelt habe, ein neues Paket ggmapstyles, die mit diesem Problem helfen sollte: https://github.com/mikey-harper/ggmapstyles

Das Paket können Sie Entwürfe auswählen von Snazzy Maps und von der Seite des Stil verwendet, ist so einfach wie das Kopieren der URL in den Stil:

devtools::install_github("mikey-harper/ggmapstyles") 
library(ggmapstyles) 

map <- get_snazzymap(center = 'London', 
        mapRef = "https://snazzymaps.com/style/61/blue-essence") 
ggmap(map) 

enter image description here

Wenn Sie kein Design finden, das Ihnen gefällt, können Sie Snazzy Maps kostenlos beitreten und Ihr eigenes Design im Webbrowser erstellen.