如何在R语言中使用经纬度坐标绘制站点分布地图
R语言leaflet绘制站点地图修复方案
核心错误原因
- 列名不匹配:stations数据集经纬度列名为
lng、lat,代码中错误调用了不存在的start_lng、start_lat列,生成的坐标变量为空导致绘图失败 - 冗余操作:重复加载leaflet包无意义,且不需要额外将数据转为sp空间对象,leaflet原生支持普通数据框传入坐标参数
可运行完整代码
# 首次使用请先安装依赖,已安装可跳过 install.packages("leaflet")
library(leaflet) # 原始数据集 stations <- data.frame( station = c("StreeterDr", "MichiganAve", "WellsSt"), lat = c(41.89228, 41.90096, 41.91213), lng = c(-87.61204, -87.62378, -87.63466), count = c(2300, 5678, 3452) ) # 绘制地图 leaflet(stations) %>% addTiles() %>% addMarkers( lng = ~lng, lat = ~lat, label = ~station, # 鼠标悬浮显示站点名称,不需要可删除 popup = ~paste0("站点名:", station, "<br>计数:", count) # 点击标记显示的弹窗内容,不需要可删除 )
可选优化
如果需要用count字段调整标记大小,可替换addMarkers为addCircleMarkers,添加radius = ~count/1000参数即可根据数值大小调整标记尺寸。
内容的提问来源于stack exchange,提问作者KalsaraL
相关产品推荐
相关产品推荐

