r - R包tmap:无法在线叠加点&无法在视图模式下显示点
问题描述
我开发了代码来识别高速公路坡道在地面街道上的终止位置,我想在地图上显示这些点,该地图还显示高速公路和坡道,以检查我的代码是否正确。
我使用 osm 包从开放的街道地图为城市创建了高速公路(高速公路)和坡道(motorway_links)的简单要素(sf)对象。我的代码标识了坡道在地面街道上终止的点的坐标,并创建了这些点的 sf 对象。两个 sf 对象中的坐标都是地理坐标。它们是一致的,因为斜坡终点节点是从链接端点坐标中选择的。
我已经检查过这两个对象都属于“sf”类。我可以使用 plot 命令绘制两个 sf 对象:
plot(st_geometry(Hwy_sf))
plot(st_geometry(RampTerminiNodes_sf), add = TRUE, col = "red")
我想在“视图”模式下使用 tmap 包绘制它们,以便能够放大区域以确认正确识别斜坡终点,但我遇到了 2 个问题。
首先,我无法在 tmap 的高速公路线上绘制坡道终点点。我可以让每个图层单独绘制,但不能将点图层绘制在线条图层的顶部。这可以将高速公路显示为线条:
tmap_mode("plot")
tm_shape(Hwy_sf) + tm_lines(lwd = 2)
这可以将斜坡终点显示为点:
tmap_mode("plot")
tm_shape(RampTerminiNodes_sf) + tm_bubbles(size = 0.1, col = "red")
但这不起作用(显示线条但不显示点):
tmap_mode("plot")
tm_shape(Hwy_sf) + tm_lines(lwd = 2) +
tm_shape(RampTerminiNodes_sf) + tm_bubbles(size = 0.1, col = "red")
其次,我一直无法弄清楚如何在“查看”模式下显示点数据。这行不通。绘图区域显示消息:“地图数据尚不可用”
tmap_mode("view")
tm_shape(RampTerminiNodes_sf) + tm_bubbles(size = 0.1, col = "red")
系统信息为:
Windows 10
R 版本 Rx64 4.0.2
R Studio 版本 1.3.1093
解决方案
解决了这个问题。我的代码中有一个错误,它改变了 RampTerminiNodes_sf 对象的投影。纠正即解决问题。
推荐阅读
- python - 使用 simplekml 从 dict 创建 KML 时出错
- vba - Word VB 如何将单词添加到用户自定义词典
- asp.net - 在 ASP.NET MVC 中注册一对多关系
- python - 如何对适用于字符串的函数进行cythonize?
- matlab - || 的操作数 和 && 运算符必须可转换为逻辑标量值。符号变量
- javascript - 使用工作箱的注入清单在 vue.js 中创建服务工作者崩溃
- python - 我如何找到从 -1 到 1 的随机浮点数?
- openthread - 如何在 OpenThread 上拦截特殊的 IEEE 802.15.4 帧?
- javascript - 如何避免 Firebase / Cloud Firestore 中的重复数据
- python - 树莓派上没有命名空间秘密