标签: r-leaflet

用传单绘制特定国家的地图

我想使用leaflet带有R的包来绘制特定国家的地图,例如意大利,西班牙等。

我检查了该函数的基本示例,setView()并尝试为 latitude 和 longitutde arg 提供两个值的向量:

m <- leaflet() %>%
  addTiles() %>%  # Add default OpenStreetMap map tiles
  setView(lng=c(46.00,48.00), lat=c(2.00,6.00), zoom = 4)
m  # Print the map (map is not centered on a country, it's just a test)
Run Code Online (Sandbox Code Playgroud)

但是我将永远无法在我的屏幕上显示特定国家/地区,例如此功能的结果:

library(maps)
map('italy', fill = TRUE, col = 1:10)
Run Code Online (Sandbox Code Playgroud)

最后,我只想通过在我的地图上(有纬度和经度)对它们进行地理定位来绘制一些点

是否可能或该包maps是否足以完成此任务(即使我没有找到放大的方法)?

maps r geospatial leaflet r-leaflet

5
推荐指数
2
解决办法
9418
查看次数

使用浏览器打开 .html(= .Rmd 输出)时,传单层图块不可切换

几天来,基本图层图块“OSM”和“Stamen.TonerLite”(我已经使用了一年多作为我的地图的标准图块)没有正确显示 - 即不再可能在它们之间切换.

只要地图在 RStudio 和 RStudio Viewer 中显示,一切都可以完美运行。但是,一旦我在浏览器中打开 .Rmd 输出的相应 .html 文件(我尝试了 chrome、internet explorer、edge 和 firefox),就不可能在磁贴之间切换了。要么显示“OSM”,我不能切换到“Stamen.TonerLite”,反之亦然。
我尝试了不同的图层瓷砖或超过 2 层瓷砖,但结果相同。即使我切换到其他图层,也始终只有一层图块可见。

我的案例的可重现示例

---
title: "stackoverflow"
author: " "
date: " "
output: html_document
---

```{r, echo = T}
library(leaflet)

m <- leaflet() %>%
     addTiles(group = "OSM") %>%
     addProviderTiles("Stamen.TonerLite") %>%
     addLayersControl(baseGroups = c("OSM", "Stamen.TonerLite")) %>%
     addCircleMarkers(lat = 47.4,
                      lng = 9.37,
                      radius = 10,
                      fillOpacity = 1.0)
m
```
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

在此处输入图片说明

html r knitr r-leaflet

5
推荐指数
1
解决办法
219
查看次数

如何设置传单地图的缩放级别/视图

leaflet在 RShiny 中有一张地图,其中绘制了标记,一旦我单击一个标记,它就会添加圆圈以显示标记的所有相关点。

我想要做的是以所有相关圆圈都可见的方式设置地图的缩放/视图。

圆圈的数量因标记而异,即有些标记有 1 或 2 个圆圈,而有些则有更多。此外,圆圈的位置在美国各地各不相同,因此它们可以放置在一个城市或另一个州。

以下是我用来向现有地图添加圆圈的代码

  proxy <-leafletProxy("map",data = df)%>%
  clearMarkers()%>%
  addCircleMarkers(lat = ~lat,lng = ~lng,layerId = ~circle_pt,fillColor = 
 'green',opacity = 0.5,color = 'red',fillOpacity = 1)%>% clearPopups()%>%
  addPopups(lat=~lat,lng=~lng,~as.character(circle_pt))
Run Code Online (Sandbox Code Playgroud)

map=带有标记的原始地图 df=lat lng 与地图中选定标记的相关属性的圆圈

显示标记的原始地图

圆圈显示在标记点击事件上

我想设置缩放级别,如图 2 所示。

请帮助我确定如何计算shiny.

问候,

r leaflet shiny r-leaflet

5
推荐指数
1
解决办法
1万
查看次数

在传单中更改addLayersControl的图形

我想知道是否有办法将addLayersControlin 的符号替换为 leaflet更自定义的东西,甚至是标题.

在此输入图像描述

r leaflet r-leaflet

5
推荐指数
1
解决办法
200
查看次数

将州边界添加到传单的输出中,其中输入是县 shapefile

shapefiledata.gov下载了县。我可以在传单中使用它们,如下所示来绘制 WA、ID 和 OR 中的县。我想让州边界更厚。我怎样才能做到这一点?

counties <- readOGR(paste0(dir, "/tl_2017_us_county.shp"),
                    layer = "tl_2017_us_county", GDAL1_integer64_policy = TRUE)

counties <- counties[counties@data$STATEFP %in% c("16", "41", "53"), ]
counties <- subset(counties, STATEFP %in% c("16", "41", "53") )
counties <- rmapshaper::ms_simplify(counties)

counties %>%
leaflet() %>%
setView(lng = -118.4942, lat = 47.2149, zoom = 5) %>%
addPolygons( fillColor = "green", fillOpacity = 0.5,
             color = "black", opacity = 1.0, weight = .6, smoothFactor = 0.5,
             highlightOptions = highlightOptions(color="white", weight=2, bringToFront = TRUE),
             label= …
Run Code Online (Sandbox Code Playgroud)

r r-sp r-leaflet

5
推荐指数
1
解决办法
1820
查看次数

如何使用 R 上的传单在 Lambert 93 中投影栅格 + 多边形?

我正在尝试在 Lambert 93 (st_transform(2154)) 中制作传单地图,包括: 1. 多边形(法国) 2. 栅格图层(欧洲)

我不明白为什么下面的代码不起作用。

library(leaflet)
library(tidyverse)
library(sf)
library(grid)
library(fasterize)
library(cartography)
library(mapview)


sf_europe <- cartography::nuts0.spdf %>% st_as_sf  %>% mutate(num=ifelse(id=="FR",1,0)) %>% st_transform(2154) 

r <- raster(sf_europe, res = 10000)
r <- fasterize(sf_europe, r, field="num",background = 2)

epsg_affichage <- leafletCRS(crsClass = 'L.Proj.CRS', code = 'EPSG:2154',
                             proj4def = "+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +units=m +no_defs",
                             resolutions = c(65536, 32768, 16384, 8192, 4096, 2048)
)

sf_france_4326 <- sf_europe %>% filter(id=="FR") %>% st_transform(4326)


leaflet(options =
          leafletOptions(maxZoom = 5, …
Run Code Online (Sandbox Code Playgroud)

r r-raster r-leaflet r-mapview

5
推荐指数
0
解决办法
238
查看次数

将 SelectAreaFeature 插件与 Leaflet for R 一起使用

我正在尝试将SelectAreaFeature Leaflet JS 插件与 Leaflet for R 一起使用。

我使用其他 Leaflet JS 插件取得了成功,但没有使用 SelectAreaFeature 插件。这是一个 MRE(需要SelectAreaFeature js 文件):

library(leaflet)
library(htmltools)
library(shiny)

selectarea <- htmlDependency("SelectAreaFeature", "1",
                             src = c(file = paste0(getwd(),"/src")), # update path
                             script = "Leaflet.SelectAreaFeature.js")

registerPlugin <- function(map, plugin) {
  map$dependencies <- c(map$dependencies, list(plugin))
  map
}

server = function(input, output, session) {
  output$map <- renderLeaflet({
    leaflet() %>%
      addProviderTiles(providers$CartoDB.Positron) %>%
      setView(lng=9.4, lat=56.3, zoom = 8) %>%
      registerPlugin(selectarea)
  })
}

ui <- fluidPage(
  tags$script(HTML(
    '$("#enable-button").click(function(){
        selectfeature = map.selectAreaFeature.enable();

        selectfeature.options.color …
Run Code Online (Sandbox Code Playgroud)

r leaflet shiny r-leaflet

5
推荐指数
0
解决办法
142
查看次数

在 Jupyter Lab 显示中增加 rleaflet 地图的大小(Jupyter 中的 R)

在 Jupyter Lab Notebook 中使用 R 和 rleaflet 时。我的输出地图又短又宽,有一个垂直滚动框,我找不到增加它的高度的方法。

# Code to reproduce
library(leaflet)
m = leaflet() %>% addTiles()

m
Run Code Online (Sandbox Code Playgroud)

结果是: 在此处输入图片说明

r jupyter jupyter-irkernel r-leaflet jupyter-lab

5
推荐指数
0
解决办法
119
查看次数

将闪亮的传单世界地图缩放至全宽

有谁知道如何设置 Shiny Leaflet 地图的默认渲染缩放,以便完整的世界地图缩放以适​​合窗口宽度(即 -180° 到 180° 适合窗口)?我只能将缩放设置为整数,2太小和3太大。可重现的例子:

require(shiny)
require(leaflet)
require(magrittr)

d = data.frame(country = c('China', 'Brazil', 'Canada'), lon = c(105, -52, -95), lat = c(35, -10, 60))

server <- function(input, output, session) {

  output$mymap <- renderLeaflet({
    leaflet(d) %>% 
      addCircleMarkers(layerId = ~country, lng = ~lon, lat = ~lat, label = ~ country, radius=30) %>% 
      addProviderTiles(providers$Stamen.TonerLite, options = providerTileOptions(noWrap = TRUE,  minZoom=1, maxZoom=18)
      )
  })
}

ui <- fluidPage( 
  tags$head(tags$style(HTML("#mymap { position: fixed; left: 0; top: 0; …
Run Code Online (Sandbox Code Playgroud)

r shiny r-leaflet

5
推荐指数
0
解决办法
156
查看次数

如何在传单中的多边形上添加标签

我正在使用传单R包.我有一个由多边形组成的分区系统,我想把它们放在它们之上.下面是我的目标(与另一个软件)的说明.

在此输入图像描述

谢谢你的建议!

r polygons leaflet r-leaflet

4
推荐指数
1
解决办法
3040
查看次数