5

我不确定这是否是问这个问题的正确地方,但是有人对访问可用于 ggmap 的不同地图样式有建议吗?CloudMade 不再向非“企业账户”的账户提供 API 密钥。

来自“ggmap: Spatial Visualization with ggplot2”(Kahle 和 Wickham),他们建议使用 Stamen 或 Google 地图,但我正在寻找与这些不同的风格。

任何人都可以建议一个可用于 ggmap 的地图样式存储库吗?

干杯

4

4 回答 4

2

谷歌地图有一个鲜为人知的风格特征:

https://developers.google.com/maps/documentation/javascript/styling

正如另一条评论指出的那样,get_map 只是 get_googlemap 等的包装器。然后 get_googlemap 只是一系列用于获取地图图块的 http 调用的包装器,因此似乎可以稍微破解 get_googlemap 的代码而不是指向在基本的谷歌地图样式中,它会抓取样式化的瓷砖。

我可能会在下个月采用这种方法,因为我需要 OP 要求的类似底图。

于 2014-11-19T00:20:08.050 回答
2

maps您可以使用该软件包获得简单的陆地 - 水对比:

用 xlim 和 ylim 设置地图的边界。

library(maps)
library(ggplot2)

map <- fortify(map(fill = TRUE, plot = FALSE))

ggplot(data = map, aes(x=long, y=lat, group = group)) +
   geom_polygon(fill = "ivory2") +
   geom_path(colour = "black") +
   coord_cartesian(xlim = c(137, 164), ylim = c(-14, 3.6)) +
   theme(panel.background = element_rect(fill = "#F3FFFF"),
          panel.grid.major = element_blank(),
          panel.grid.minor = element_blank())

地图有点笨重,但包中提供了高分辨率地图mapdata>

library(mapdata)
map <- fortify(map("worldHires", fill = TRUE, plot = FALSE))

ggplot(data = map, aes(x=long, y=lat, group = group)) +
   geom_polygon(fill = "ivory2") +
   geom_path(colour = "black") +
   coord_cartesian(xlim = c(135, 165), ylim = c(-15, 0)) +  # Papua New Guinea
   theme(panel.background = element_rect(fill = "#F3FFFF"),
          panel.grid.major = element_blank(),
          panel.grid.minor = element_blank())  # Be patient

或者可以选择一个国家。

map <- fortify(map("worldHires", fill = TRUE, plot = FALSE))

ggplot(data = subset(map, region == "Papua New Guinea"), aes(x=long, y=lat, group = group)) +
   geom_polygon(fill = "ivory2") +
   geom_path(colour = "black") +
   theme(panel.background = element_rect(fill = "#F3FFFF"),
          panel.grid.major = element_blank(),
          panel.grid.minor = element_blank()) 
于 2014-04-17T11:15:49.047 回答
1

这目前最适合 ggmap 的开发版本。要使用它,您需要运行devtools::install_github("dkahle/ggmap")

我开发了一个新包ggmapstyles,它应该有助于解决这个问题:https ://github.com/mikey-harper/ggmapstyles 。它提供了一种从Snazzy Maps中选择主题的简单方法,其中预先制作了超过 16,000 种不同的样式,并允许您创建自定义设计。

在此处输入图像描述

要使用设计,请转到 Snazzymaps 并找到您喜欢的样式,然后get_snazzymap()使用mapRef参数将 URL 复制到函数中:

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

map <- get_snazzymap(center = 'Southampton, UK', 
                     mapRef = "https://snazzymaps.com/style/72543/assassins-creed-iv")
ggmap(map)

在此处输入图像描述

将计划进一步开发它,并可能在未来将其与 ggmap 合并:)

于 2018-02-23T15:53:04.420 回答
0
于 2014-04-13T23:26:43.193 回答