【问题标题】:How to add labels on top of polygons in leaflet如何在传单中的多边形顶部添加标签
【发布时间】:2018-06-17 06:05:46
【问题描述】:

我正在使用传单R 包。我有一个由多边形组成的 zoning 系统,我想将它们的 ID 放在它们上面。下面是我的目标的插图(使用另一个软件)。

感谢您的建议!

【问题讨论】:

    标签: r leaflet polygons r-leaflet


    【解决方案1】:

    由于没有可重复的数据,我决定使用我之前与传单相关的一篇文章。你想从这篇文章中得到两件事:1)你需要创建一个包含目标区域中心点的数据框,2)你需要使用addLabelOnlyMarkers()。您可以使用gCentroid() 实现第一件事。我将多边形数据集(英国)的行名称作为字符添加到centers。这用于标记。您需要考虑在自己的情况下使用什么标签。一旦这个数据集准备好了,你想在addLabelOnlyMarkers() 中使用它。

    library(raster)
    library(rgeos)
    library(leaflet)
    
    # Get UK polygon data
    UK <- getData("GADM", country = "GB", level = 2)
    
    # Find a center point for each region
    centers <- data.frame(gCentroid(UK, byid = TRUE))
    centers$region <- row.names(UK)
    
    ### Create dummy data
    set.seed(111)
    mydf <- data.frame(place = unique(UK$NAME_2),
                       value = sample.int(n = 1000, size = n_distinct(UK$NAME_2), replace = TRUE))
    
    ### Create five colors for fill
    mypal <- colorQuantile(palette = "RdYlBu", domain = mydf$value, n = 5, reverse = TRUE)
    
    leaflet() %>% 
    addProviderTiles("OpenStreetMap.Mapnik") %>%
    setView(lat = 55, lng = -3, zoom = 6) %>%
    addPolygons(data = UK,
                stroke = FALSE, smoothFactor = 0.2, fillOpacity = 0.3,
                fillColor = ~mypal(mydf$value),
                popup = paste("Region: ", UK$NAME_2, "<br>",
                              "Value: ", mydf$value, "<br>")) %>%
    addLabelOnlyMarkers(data = centers,
                        lng = ~x, lat = ~y, label = ~region,
                        labelOptions = labelOptions(noHide = TRUE, direction = 'top', textOnly = TRUE)) %>%
    addLegend(position = "bottomright", pal = mypal, values = mydf$value,
              title = "UK value",
              opacity = 0.3)
    

    【讨论】:

    • 这是一个很好的例子,谢谢。我还想链接到这个答案,我发现它对非凸多边形非常有帮助:gis.stackexchange.com/a/265475/78424
    • @geneorama 谢谢你的话。非常感激!感谢您在此处留下有用的链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    相关资源
    最近更新 更多