如何从 shapefile leaflet R 访问多边形信息

2024-04-11

我使用以下方法制作了伦敦地图https://data.london.gov.uk/dataset/statistical-gis-boundary-files-london https://data.london.gov.uk/dataset/statistical-gis-boundary-files-london和闪亮和R 和传单。我向 shapefile 添加了一个属性,现在希望能够在用户单击特定多边形时突出显示 shapefile 并打印信息。

我在看闪亮的传单多边形点击事件 https://stackoverflow.com/questions/42798377/shiny-leaflet-ploygon-click-event, 在 R 传单中标记鼠标单击事件以获得闪亮效果 https://stackoverflow.com/questions/28938642/marker-mouse-click-event-in-r-leaflet-for-shiny?rq=1, and ,并且知道我需要使用ObserveEvent,但未能正确实施。

我的代码是:

library(shiny)
library("rgdal")
library(leaflet)

shapeData <- readOGR('statistical-gis-boundaries-london/ESRI/LSOA_2004_London_Low_Resolution.shp')
shapeData <- spTransform(shapeData, CRS("+proj=longlat +ellps=GRS80"))
shapeData$col=sample(c('red','yellow','green'),nrow(shapeData),1) #add some value you want to map
borough=read.csv('BoroughCentres.csv')

ui=fluidPage(
  fluidPage(
    leafletOutput('LSOAMap'),
    p(),
    selectInput('LANAME','Borough',
                choices = unique(shapeData$LA_NAME))
  )

) 


server=function(input, output) {

  output$LSOAMap <- renderLeaflet({
    llong=borough[borough$Borough==input$LANAME,3]
    llat=borough[borough$Borough==input$LANAME,4]

   bor=subset(shapeData,shapeData$LA_NAME %in% input$LANAME)
    leaflet()  %>% addTiles() %>% 
      setView(lng = llong, lat=llat,zoom=13) %>% 
      addPolygons(data=bor,weight=2,col = 'black',fillOpacity = 0.2,fillColor = bor$col,
                  highlightOptions = highlightOptions(color='white',weight=1,
                                                      bringToFront = TRUE)) %>% 
      addMarkers(lng = llong,lat=llat,popup=input$LANAME) 
  }) 

}
shinyApp(ui, server)

我尝试添加session作为一个论点:

  observe({
    click <- input$map_marker_click
    if (is.null(click))
      return()

    print(click)
    text <-
      paste("Lattitude ",
            click$lat,
            "Longtitude ",
            click$lng)

    leafletProxy(mapId = "LSOAMap") %>%
      clearPopups() %>%
      addPopups(dat = click, lat = ~lat, lng = ~lng, popup = text)

    # map$clearPopups()
    # map$showPopup(click$latitude, click$longtitude, text)
  })

无济于事。

我想要的是,当用户突出显示特定形状时,会弹出文本并显示相应的形状STWARDNAME来自形状文件。

行政区的前几行是:

> head(borough)
               Borough   LA_CODE        long      lat
1       City of London E09000001 -0.09194991 51.51814
2 Barking and Dagenham E09000002  0.13064556 51.54764
3               Barnet E09000003 -0.20416711 51.61086
4               Bexley E09000004  0.13459320 51.45981
5                Brent E09000005 -0.26187070 51.55697
6              Bromley E09000006  0.03734663 51.38836

你已经很接近了,但有一些语法问题,我认为这些问题让你绊倒。

首先你没有正确选择什么STWARDNAME你想要从你的 SPDF 中获取,所以 R 无法知道要显示哪一个。我添加了这一行

popup = subset(shapeData, LA_NAME == input$LANAME )$STWARDNAME

还有你路过的highlightOptions作为一种选择,而它应该是highlight

最后,由于您对多边形的鼠标悬停更感兴趣,我删除了弹出标记并更改为highlight这样当您将鼠标悬停在多边形上时就会显示名称:

leaflet()  %>% addTiles() %>% 
  setView(lng = llong, lat=llat,zoom=13) %>% 
  addPolygons(data=bor,weight=2,col = 'black',fillOpacity = 0.2,fillColor = bor$col,
              highlight = highlightOptions(color='white',weight=1,
                                                  bringToFront = TRUE), label= popup)

Which yields: enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 shapefile leaflet R 访问多边形信息 的相关文章

  • 从 data.frame 中提取时用 NA 填充缺失的列

    我有一个函数 它将具有某些列的数据框作为输入 columns a b z 现在我有一个数据框DF只有很少的这些列DF columns f u z 如果列不在其中 如何创建一个包含所有值为 NA 的列的数据框DF这与DF在柱子上 f u z
  • 美人鱼图:调整图表周围的空白

    我在用 Rstudio 编译的 Rmd 报告中使用了美人鱼图 在 HTML PDF 输出中 图表上方和下方有大量空白 请参见下面的示例 Header Text r library DiagrammeR mermaid graph TD cl
  • 为每个因素级别添加日期时间序列

    我有一个带有因子列的数据框 s lt data frame id 901 910 s id lt as factor s id 我有一个日期时间序列 library lubridate start lt now as difftime 2
  • 如何使用autoconf重新生成配置文件?

    我使用 autoconf 重新生成配置文件 它有效 但是当我执行生成的配置文件时 configure 有一些错误消息 例如 configure line 3713 syntax error near unexpected token bla
  • 删除缺失的数据值

    我删除了原始帖子 以便能够发布更大版本的数据集 实际上总共有 418 行 这是我正在进行的生存分析的数据 第一列是 ID 号 其他列标记为 V2 V20 有很多缺失的数据 用 表示 我用coxph 函数来获取以下内容 Saves survi
  • 如何在基数 R 中进行分组

    我想使用以下 SQL 查询来表达base R 没有任何特定的包 select month day count as count avg dep delay as avg delay from flights group by month d
  • 如何在R中匹配具有相同主键的两个表中的数据

    我有两个表 其中包含有关人员的数据 df1 lt data frame id c 113 202 377 288 359 name c Alex Silvia Peter Jack Jonny 这为我提供了 id name 1 113 Al
  • 如何将服务器端 Shiny 应用程序嵌入到 JSP 页面中而不将该应用程序暴露在其他地方

    我有一个闪亮的应用程序 我想将其嵌入到托管在 Amazon AWS 上的 Java 8 Web 服务器的页面中 注意 我说 嵌入 是因为网络服务器中的大多数页面共享一个公共侧边栏和页脚 这会自动应用于大多数视图 这样 jsp 文件只需为页面
  • R 错误:无法更改锁定绑定的值

    我试图估计无限数字流的平均值和标准差 当我运行代码时 出现错误消息 无法更改锁定绑定的值 我做了一些研究 发现这个错误与我使用全局变量有关 但我无法弄清楚 任何帮助将非常感激 在此先感谢您的帮助 define global variable
  • 如何总结此R问题中的销售数量、售出酒类数量和花费金额

    我使用以下代码在 R 上上传我的数据 if file exists ames liquor rds url lt https github com ds202 at ISU materials blob master 03 tidyvers
  • RStudio 不会通过 rPython 调用加载所有 Python 模块

    我从 Bash 和 RStudio 中运行相同的脚本时出现一些意外行为 请考虑以下事项 我有一个文件夹 rpython 包含两个脚本 test1 R library rPython setwd rpython python load tes
  • 空间数据xyz到矩阵

    我有一个大数据框 100 000 行 其中包含 LON LAT VALUE 我想将其转换为矩阵 EPSG 中的坐标 3035 我使用以下命令尝试了 reshape2 包 acast df lon lat value var value 效果
  • R参考类问题

    我正在尝试在 R 中创建一个简单的参考类 这是我的代码 R 初学者 MyClass lt setRefClass MyClass fields list a numeric b numeric methods list initialize
  • 在 R 中使用逻辑 grep 抓取文本

    下午好 谢谢你帮我解答这个问题 我有兴趣抓取一组超过 5000 个 URL 的列表 我使用 lapply 和 readLines 使用下面的示例代码提取这些网页的文本 multipleURL lt c http dailymed nlm n
  • 按组计算连续行中的值之间的差异

    这是我的一个df 数据框 group value 1 10 1 20 1 25 2 5 2 10 2 15 我需要按组计算连续行中的值之间的差异 所以 我需要一个结果 group value diff 1 10 NA because the
  • R data.table fwrite 到 fread 空间分隔符并清空

    我在使用 fread 以 作为分隔符和散布的空白值时遇到问题 例如 这个 dt lt data table 1 5 1 5 1 5 make a simple table dt 3 V2 NA add a blank in the midd
  • 通过 R 中的数据子集执行计算

    我想对数据框的 PERMNO 列中的每个公司编号进行计算 其摘要可以在此处查看 gt summary companydataRETS PERMNO RET Min 10000 Min 0 971698 1st Qu 32716 1st Qu
  • 汇总表中各列的字符值比例

    在这种数据框中 df lt data frame w1 c A A B C A w2 c C A A C C w3 c C A B C B 我需要计算所有列中字符值的列内比例 有趣的是 以下代码适用于大型实际数据集 但对上述玩具数据会引发错
  • 如何从 R 数据框中提取关键字

    我是 R 中文本挖掘的新手 我想从数据框的列中删除停用词 即提取关键字 并将这些关键字放入新列中 我尝试制作一个语料库 但它对我没有帮助 df C3是我目前拥有的 我想添加栏目df C4 但我无法让它工作 df lt structure l
  • 无法部署 ShinyApp:readTableHeader 在“raw”上发现不完整的最后一行(使用默认值:en_US)

    我已经拼命尝试部署我的闪亮应用程序大约一周了 但不幸的是我无法停止收到以下消息 Warning message Error detecting locale Error in read table file file header head

随机推荐