在道路上绘制 GPS 位置

plot GPS position over the road

如何在道路上绘制 GPS 轨迹并放大该道路?

有人可以取一个点(曼哈顿的 40.74640013950355,-73.98755303328286)并将其绘制在相应的道路网络上 [可能是 600 英尺 x 600 英尺的网格]。请编辑下面的代码来说明 -

lat <- 40.74640013950355
long <- -73.98755303328286

tbl <- tibble(lat, long)

ggplot(data = tbl,
       aes(x = lat,
           y = long)) +
  geom_point()

一旦我知道如何绘制道路,我就可以通过修改上面的 tbl 来覆盖我的轨迹数据。

谢谢

实现这样的剧情难度不大,从tigris库中给出的例子开始:

library(tigris)
library(ggplot2)
library(ggthemes)
roads <- roads("Maine", "031")
gg <- ggplot() + geom_sf(data = roads, color="black", fill="white", size=0.25) + theme_map()
lat <- 43.5; long <- -70.6; bbox = 0.02 
bbox_gg = coord_sf(xlim=c(long-bbox/2, long+bbox/2), ylim=c(lat-bbox/2, lat+bbox/2))
gg + geom_point(data=data.frame(lat, long), aes(x=long, y=lat), size=4, color="red") + bbox_gg

这里所做的只是在 geom_sf() 层之上添加 geom_point() 美学。我们可以使用一种边界框坐标限制来调整缩放

编辑

如果您需要在地图上显示一些道路名称,您可以将其添加到绘图中: geom_sf_label(data=subset(roads, roads$RTTYP!="M"), aes(label=FULLNAME)) 这里我使用 subset 来避免绘制 all 小路名。最终,您可能想在绘图之前找到一种方法 zoom/subset 您的数据,因为这样做会太长。