查询openstreetmap数据层以与R ggplot + sf一起使用

时间:2018-04-23 19:04:13

标签: r ggplot2 openstreetmap sf

我正试图弄清楚如何使用sfggplot2从openstreetmaps重新绘制矢量数据。我知道我可以使用ggmap获得光栅背景,但我希望通过直接使用底层矢量数据来获得更高质量的绘图。

以下是一些让我了解网站数据的代码。

map <- get_map(location = bb, maptype = "toner", source = "stamen", zoom = 15)
ggmap(map)

这会产生:

generic ggmap site

当然,我想使用矢量图形获得相同的结果。这是一个Overpass查询,它从上面的同一个边界框中选择数据。

[out:xml][timeout:60];
(
  node(38.0151865284475, -121.872227331133, 38.0340023660995, 121.829405993985);
  <;
  >;
);
out body;

将其插入overpass API似乎突出显示了大量数据,但是当我在R中绘图时,我看到了一些奇怪的东西。

library(osmdata)
q <- "[out:xml][timeout:60];\n  (\n  node(38.0151865284475, -121.872227331133, 38.0340023660995, -121.829405993985);\n      <;\n      >;\n  );\n  out body;\n  "
r <- osmdata_sf(q)
plot(r[["osm_multipolygons"]]["osm_id"])

OSM query results

我的目标是绘制一些看起来很像原始的openstreetmap绘图视图,但其中只包括铁路,街道,水体,建筑物和湿地。所以,我需要弄清楚如何下载包含在其中或触及边界框的所有内容。也许节点本身无法获取此信息?我可以实际执行我想要的osmdata,还是应该采用不同的方法?

0 个答案:

没有答案