我想使用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是否足以完成此任务(即使我没有找到放大的方法)?
几天来,基本图层图块“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)
我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.
问候,
我shapefile从data.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) 我正在尝试在 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) 我正在尝试将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) 在 Jupyter Lab Notebook 中使用 R 和 rleaflet 时。我的输出地图又短又宽,有一个垂直滚动框,我找不到增加它的高度的方法。
# Code to reproduce
library(leaflet)
m = leaflet() %>% addTiles()
m
Run Code Online (Sandbox Code Playgroud)
有谁知道如何设置 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)