首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R leaflet中使用Java脚本htmlwidget指定点半径

在R leaflet中使用Java脚本htmlwidget指定点半径
EN

Stack Overflow用户
提问于 2020-01-08 04:51:29
回答 1查看 65关注 0票数 0

我正在从这里提供的(非常有用的)代码开始,用https://github.com/timelyportfolio/leaftime/blob/master/inst/examples/example_leaftime.R在R中创建一个时间序列地图。我似乎不知道如何在我的地图上定义每个点的半径,并希望有人能给我指出正确的方向。

我的测试数据如下:

代码语言:javascript
复制
data <- data.frame(

"latitude" = c(36.998953, 38.998607, 40.547953, 36.475103, 34.634023),

"longitude" = c(-78.766255, -81.051412, -78.969508, -83.298121, -78.541041),

"start" = seq.Date(as.Date("2009-01-01"), by="day", length.out = 5),

"end" = seq.Date(as.Date("2009-01-01"), by = "day", length.out = 5) + 1,

"radius" = c(10, 8, 5, 12, 7)

)

我可以使用下面的代码创建一个基本的时间序列图:

代码语言:javascript
复制
library(leaflet)
library(leaftime)
library(htmltools)
library(geojsonio)
library(geojsonlint)

leaflet(geojsonio::geojson_json(data, lat="latitude", lon="longitude")) %>%
  addTiles() %>%
  setView(-79.771504, 36.854041, 2) %>%
  addTimeline(
    sliderOpts = sliderOptions(
      formatOutput = htmlwidgets::JS("function(date) {return new 
      Date(date).toDateString()}"), position = "bottomright", duration = 3000),
    timelineOpts = timelineOptions(
      styleOptions = styleOptions(radius = 5, color = "black", fillColor = "blue", fillOpacity = 0.60)))

但修改此代码以自定义每个点的半径并不起作用:

代码语言:javascript
复制
leaflet(geojsonio::geojson_json(data, lat="latitude", lon="longitude")) %>%
  addTiles() %>%
  setView(-79.771504, 36.854041, 2) %>%
  addTimeline(
    sliderOpts = sliderOptions(
      formatOutput = htmlwidgets::JS("function(date) {return new 
      Date(date).toDateString()}"), position = "bottomright", duration = 3000),
    timelineOpts = timelineOptions(
      styleOptions = styleOptions(radius = htmlwidgets::JS("function getRadius(d) {return +d.properties.radius}"), 
      color = "black", fillColor = "blue", fillOpacity = 0.60)))

错误似乎是在从调用java脚本函数getRadius时出现的,但我不熟悉java脚本语言,也不确定如何修复。谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-01-08 15:58:03

如果您的意思是JS代码,请尝试:function getRadius(d) {return d.properties.radius}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59635883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档