R数据分析与可视化R plotIMP research

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 = '临平区边界')

最终效果如下:


添加区划并设置主题
上一篇下一篇

猜你喜欢

热点阅读