【问题标题】:R using Heatmaps in LeafletR 在传单中使用热图
【发布时间】:2017-04-19 14:48:51
【问题描述】:

我有一个运行 Shiny 的 Linux 机器 我正在尝试根据演示 herehere 让代码运行传单,看起来很棒

我的代码如下,取自 rpubs 页面

library(leaflet)
library(leaflet.extras)
leaflet(quakes) %>% addProviderTiles(providers$CartoDB.DarkMatter) %>%
  addWebGLHeatmap(lng=~long, lat=~lat, intensity = ~mag, size=60000)

我已经安装了/home/shiny/nodejs/Leaflet.heat-gh-pages

当我运行上面的代码时,我得到了地图。我的数据很好,因为我可以绘制标记,但是当我添加 addWebGLHeatmap 部分时似乎没有发生任何事情。

我是 JS 的新手,但是否需要任何其他设置才能使其运行?

【问题讨论】:

  • “什么都没有发生”是什么意思?如果只有一张空白地图,则可能意味着您的浏览器太旧或不支持 WebGL 存在问题。你可以在这里测试一下,例如:get.webgl.org
  • 嗨@chrki,地图加载但点(我的数据的热图方面)没有覆盖 OSM 地图

标签: r leaflet


【解决方案1】:

看来我必须先注册插件才能让它按照github页面here工作

library(leaflet)
library(htmltools)
library(htmlwidgets)
library(dplyr)

heatPlugin <- htmlDependency("Leaflet.heat", "99.99.99",
  src = c(href = "http://leaflet.github.io/Leaflet.heat/dist/"),
  script = "leaflet-heat.js"
)

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

leaflet() %>% addTiles() %>%
  fitBounds(min(quakes$long), min(quakes$lat), max(quakes$long),     max(quakes$lat)) %>%
  registerPlugin(heatPlugin) %>%
  onRender("function(el, x, data) {
    data = HTMLWidgets.dataframeToD3(data);
    data = data.map(function(val) { return [val.lat, val.long, val.mag*100]; });
L.heatLayer(data, {radius: 25}).addTo(this);
  }", data = quakes %>% select(lat, long, mag))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 2018-06-09
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多