如何在R中用mapview和mapedit绘制矩形后为几何对象添加数值?
在R中用mapview/mapedit绘制矩形并添加自定义数值
核心思路
mapedit的editFeatures工具支持属性编辑,不仅能修改几何对象,还可以给每个绘制的矩形添加自定义数值字段。以下是两种实用方案:
方案一:绘制后可视化编辑属性(推荐)
先绘制矩形,再通过交互式界面给每个矩形输入特定数值:
# 加载依赖包 library(mapview) library(mapedit) library(sf) # 打开地图绘制矩形(仅启用矩形绘制工具) drawn_rects <- drawFeatures( map = mapview()@map, drawToolbar = drawToolbar( rectangle = TRUE, polyline = FALSE, polygon = FALSE, circle = FALSE, marker = FALSE ) ) # 打开属性编辑弹窗,添加"自定义数值"字段 edited_rects <- editFeatures( drawn_rects, attributes = list( custom_value = list( type = "numeric", label = "自定义数值", value = 0 # 设置默认值 ) ) ) # 查看带数值的矩形地图(按数值着色) mapview(edited_rects, zcol = "custom_value")
编辑完成后,edited_rects是带custom_value字段的sf对象,后续可直接用于数据分析或可视化。
方案二:手动批量添加数值
如果已经知道每个矩形对应的数值,可直接给sf对象添加列:
# 绘制矩形 drawn_rects <- drawFeatures(map = mapview()@map, drawToolbar = drawToolbar(rectangle = TRUE)) # 按绘制顺序添加对应数值(示例:第一个矩形值15,第二个30,第三个22) drawn_rects$custom_value <- c(15, 30, 22) # 可视化 mapview(drawn_rects, zcol = "custom_value")
内容的提问来源于stack exchange,提问作者r2d2
相关产品推荐
相关产品推荐

