加入收藏 | 设为首页 | 会员中心 | 我要投稿 滨州站长网 (https://www.0543zz.cn/)- CDN、边缘计算、物联网、云计算、运营!
当前位置: 首页 > 大数据 > 正文

R空间数据处理与可视化

发布时间:2021-02-21 08:01:35 所属栏目:大数据 来源:网络整理
导读:前言 很多朋友说在R里没法使用高德地图,这里给出一个基于leaflet包的解决方法。 library(leaflet)# 添加高德地图m - leaflet() %% addTiles( 'http://webrd0{s}.is.autonavi.com/appmaptile?lang=zh_cnsize=1scale=1style=8x={x}y={y}z={z}',options=tileOp

我们继续上面的例子,将空间对象绘制到高德地图上。

library(leaflet)
factpal <- colorFactor(c(rgb(1,1),rgb(0,1)),domain=c("congest","uncongest"))

m <- leaflet() %>%
  addTiles(
    'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',options = tileOptions(tileSize=256,maxZoom=17),group="高德地图"
  ) %>%
  setView(116.40,zoom = 10)  %>%
  addPolylines(color=~factpal(status),weight=3,opacity=1,data=Sldf,group="实时路况") %>%
  addPolygons(data=dilated_buffer_wkt,group="空间计算") %>% 
  addPolygons(data=eroded_buffer,color="black",group="空间计算") %>%
  addLayersControl(
    overlayGroups = c("高德地图","实时路况","空间计算"),options = layersControlOptions(collapsed = FALSE)
  ) %>%
  addLegend("bottomleft",pal = factpal,values = Sldf@data$status,title = "实时交通",opacity = 1
  ) %>%
  fitBounds(Sldf@bbox["x","min"] - 0.001,Sldf@bbox["y",Sldf@bbox["x","max"] + 0.001,"max"] + 0.001
  )

m

R空间数据处理与可视化

后记

R空间处理的第三方库主要由sp提供了R的存储结构,rgdal提供了读写操作,rgeos提供了运算操作。然而,sp的实现只实现了空间数据处理标准Simple Feature的一个子集,且处理效率较低。为此,一个全新的sf包正在开发中,目标是替换掉sp,并把rgdal和rgeos的功能整合进来。目前已经具备了基本的使用功能,我们可以使用sf来完成从数据框创建空间对象的操作,可以看到代码简单了很多:

link_wkt <- link_coors %>%
  mutate(wkt_prefix="LINESTRING(",wkt_content=str_replace_all(coors," ") %>% str_replace_all(":","),wkt_posix=")",geom=str_c(wkt_prefix,wkt_content,wkt_posix)
         ) %>%
  select(link_id,status,geom)

link_sf <- st_as_sf(link_wkt,wkt="geom")

# sf提供的buffer运算功能还不够完善,我们仍需要使用rgeos来完成相应的操作;rgeos只认sp,所以要做一次从sf到sp的转化。
Sldf <- as(link_sf,"Spatial")

(编辑:滨州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读