问题标签 [r-leaflet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
235 浏览

html - 使用浏览器打开 .html(= .Rmd 输出)时,Leaflet Layer Tiles 不可切换

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

只要地图在 RStudio 和 RStudio Viewer 中显示,一切都会完美运行。但是,只要我在浏览器中打开 .Rmd 输出的相应 .html 文件(我尝试过 chrome、Internet Explorer、Edge 和 firefox),就无法再在图块之间切换。显示“OSM”,我无法切换到“Stamen.TonerLite”,反之亦然。
我尝试了不同的图层图块或超过 2 个图层图块,但结果相同。即使我切换到其他图层,也总是只有一层可见。

我的案例的可重现示例

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
3627 浏览

r - 在 R 中创建带有自定义标签的传单地图

我想使用 R 中的世界地图来可视化我的数据,其中要在某些点(给定坐标)添加标签。标签应该是一些 3D 矩形,其高度与数据表中的值成比例。我会使用 R 包“传单”(或任何替代方案,如果更好的话)。全世界大约有10-15个点,每个位置有两个值(具体来说,点是主要油田的位置,值是例如规模和储量)。我希望每个点有两个这样的 3D 矩形,比如说,红色和蓝色彼此靠近,具有适当的高度和数字,并且每个点都标有油田的名称。我找到了带有传单包的解决方案,将圆圈添加到具有适当半径的地图中。

数据和库由代码加载:

somedata.csv 具有以下结构(四个数据线仅作为最小的工作示例):

圆圈标记的地图由命令调用

然而,这个解决方案不是很好,因为它不允许可视化第二个值(通过参数 radius=~res.density ,其中 res.density 是我的 .csv 表中盆地的第一个值的名称)。

我想复制一些看起来像这张图片的东西,它是由 GMT 制作的。有一个普通(2D)地图就足够了,但是每个点需要两个这样的矩形,每个矩形的字段名称和值。

图片来自 GMT 包

在此处输入图像描述

0 投票
1 回答
2832 浏览

r - 在由空间多边形数据框制成的传单地图中添加标记

我想在由空间多边形文件制作的地图上放置基于 lat long 的标记(我已经在数据框中拥有这些数据)。我可以在addTiles函数的帮助下在 openstreetMap 上执行此操作,但被空间多边形文件卡住了。以下是以openstreet地图为背景的代码

此文件中的示例数据:

然后我使用

这给了我这个 现在我只想看印度的地图,所以有没有办法让其他国家变成空白。这是输出

为了实现这一点,我正在尝试在印度的 shapefile 上进行相同的绘制标记练习,是否有另一种方法可以做到这一点?

当我使用此代码时

我明白了在此处输入图像描述

但我不明白如何将多个 lat long 作为输入来制作标记。我试过这个

但这给了我错误。感谢您提供任何帮助我在此停留了很长一段时间,这令人沮丧。我搜索了任何类似的主题,但找不到任何可以解决我的问题的东西。

0 投票
0 回答
657 浏览

r - R传单地图,添加在悬停时展开并显示一些文本的按钮

扩展addEasyButtonRStudios传单包中的示例,我想知道是否可以创建一个在悬停时自动扩展以显示一些文本的按钮?类似于下面的代码,但不是通过点击警报而是通过悬停展开(类似于图层控制按钮)。

0 投票
1 回答
1187 浏览

r - R上的传单addCircleMarkers半径

我在传单 addCircleMarkes 中有一个半径“问题”

示例数据集:

我用(嵌套的if)更改地图中圆形标记的半径,radius = ~ifelse(data$number <=25, 2, ifelse((data$number > 25 & data$number <=50),4,6))这没有问题,但我认为还有另一种更“优雅”的方式。

我无法弄清楚如何自动生成一系列数字,例如 [0-25] = 2、[26 - 50] = 4 和 [51 - more] = 6 并进行比较:

如果 data$number 在特定范围内,则将与该范围关联的数字放入 radius。

原始数据集的数字在 1 到 1500 之间,所以我的实际形式并没有太大帮助。

提前致谢

0 投票
1 回答
1267 浏览

r - 使用 R Leaflet 与从 JavaScript API 绘制的 Leaflet Map 进行交互

几周前,我发现了很棒的网站https://windy.com,它提供了一个免费的 API,可以将地图包含在您自己的网页中(请参阅https://api.windy.com)。

我想将此地图作为基础层/提供者图块包含在传单中,以在 Shiny 应用程序中展示。

我可以包含地图,但是我无法让地图与 R Leaflet 函数(例如 addMarkers)进行交互。假设我想在单击按钮时向地图添加一些随机标记。

我尝试了不同的东西,它们都没有显示标记:

尝试 1

尝试 2(包括 JS 作为插件)

可能的解释

“Hello World”标记有效(包含在 js 脚本中)看截图。但是随机数据点没有显示。通过检查由闪亮的应用程序生成的 HTML,我发现风传单地图未存储在风的 id 中。相反,它会在 id = "map_container" 的 windyty div 内创建传单地图。

此外,“map_container”具有类“leaflet-container leaflet-fade-anim”而不是类“leaflet html-widget html-widget-output shiny-bound-output Leaflet-container Leaflet-fade-anim”我认为地图通常有。这可能是问题所在。

任何帮助将不胜感激!干杯

0 投票
0 回答
409 浏览

r - 让 Shiny Leaflet 识别从外部托管的 JS 文件创建的地图

我想使用 Shiny Leaflet 来渲染已经存在的传单地图,但是由于初始地图​​是从外部托管(相当复杂)的 JS 文件创建的,我无法控制它,因此出现了问题。

我似乎无法让传单地图与 R 传单功能一起使用。也就是说,除了浏览器控制台打印:“找不到带有 id mapid 的地图”之外,什么也没有发生。

所以问题是: 如何让 Shiny Leaflet 从外部托管的 JS 文件中识别在 UI 端创建的 Leaflet 地图,以便可以从服务器端更改地图。

下面是一个最小的示例,其中使用 JS 在 UI 端创建传单地图。然后应用程序(不成功)尝试从服务器端向地图添加新点。:

任何帮助将不胜感激!

干杯

0 投票
1 回答
4278 浏览

r - 在 Leaflet R 中将图标添加到图层控件

如何将图标添加到包 Leaflet R 中的图层控件?我用以下代码制作了图标:

并使用以下代码制作了地图

结果如下:

在此处输入图像描述

我想得到这种风格的东西,但是用我的图标:

在此处输入图像描述

0 投票
0 回答
251 浏览

shiny - 是什么导致标记的位置在闪亮的传单地图中不准确(大约 500 m)?

我正在尝试创建一个传单地图作为 R-Shiny 项目的一部分,该项目在我之前使用 Google API 从地址信息进行地理编码的位置显示圆形标记。将 lon/lat 值放回谷歌会给我地址的确切位置。

当我使用下面的代码从闪亮项目中的这些 lon/lat 值创建地图时,标记位置在随机方向上偏离了几百米(在最大缩放级别)。

根据谷歌搜索,我的猜测是这与标记由于缩放级别或不兼容的地图投影而改变位置有关。

0 投票
1 回答
218 浏览

javascript - R/Leaflet:使 LayersControl 在单击而不是悬停后出现

请参阅以下 MWE:

LayerControl (addLayersControl) 的标准行为是在用户悬停图标后出现。相反,我想在单击后查看图层选项。标准 addLayersControl 函数不提供此类功能。有人知道解决方法吗?