R leaflet包制作动态地图
2021-06-23 本文已影响0人
小核桃脸婆婆
使用leaflet和leafletCN包在地图上标注,并添加颜色等分类信息,绘制区划图。
添加了颜色信息的基本绘图
这里只用了最简单的圆圈+颜色来标点。也可以自行更改标点的形状样式。
#获取经纬度信息
data <- read.csv('datagaode.csv') #高德坐标系
#位置微调
data$lng <- data$lng-0.005
data$lat <- data$lat+0.004
#赋予颜色信息
data$type[data$type == 'A'] <-'#000000' #黑色
data$type[data$type == 'B'] <-'#FF0033' #红色
#绘图
leaflet(data) %>%
amap() %>%
addMiniMap()%>%
addCircleMarkers(lng = data$lng,lat = data$lat, popup = data$id,
radius = 7, #圆点的直径
color = data$type, #添加颜色信息
stroke = FALSE,
fillOpacity = 0.7, #圆点透明度
label = data$label,
labelOptions = labelOptions(noHide = F, #标签是否一直显示
direction = 'bottom',
style = list(
'font-size' = '14px' #标签字体大小
)))
效果如下:
默认地图
很乱,看不出东西来,既要做减法隐藏部分我们不需要的信息,又要做加法添加更多辅助读图内容。
叠加行政区划的图层
杭州调整了新的行政区划,没有临平区的现成图形文件,自己在高德地图上采集了一个。
#载入临平行政区划
linping <- read.csv('linping.csv') #区划边界上每个点的经纬度信息
#位置微调
linping$lng <- linping$lng-0.005
linping$lat <- linping$lat+0.004
Sr1 = Polygon(cbind(linping$lng, #-0.005
linping$lat)) #+0.004
srs1 = Polygons(list(Sr1), "s1")
SpP = SpatialPolygons(list(srs1))
修改地图主题,帮助隐藏一些不需要着重体现的信息
地图主题可以由names(providers)获取,可以自行尝试。这里用了CartoDB
leaflet(data) %>%
amap() %>%
addMiniMap()%>%
addProviderTiles('CartoDB') %>%
addCircleMarkers(lng = data$lng,lat = data$lat, popup = data$id,
radius = 7,
color = data$type,
stroke = FALSE,
fillOpacity = 0.7,
label = data$label,
# clusterOptions = markerClusterOptions(freezeAtZoom = 12),
labelOptions = labelOptions(noHide = F,
direction = 'bottom',
style = list(
'font-size' = '14px'
)))%>%
addPolylines(data = SpP,
weight = 2,
label = '临平区边界')
最终效果如下:
添加区划并设置主题