我正在使用Ramnath Vaidyanathan在http://rmaps.github.io/blog/posts/leaflet-heat-maps/index.html上提供的优秀演示,并希望为我的闪亮应用程序复制他的热力图。
然而,当我尝试在闪亮中使用Ramnath的代码时,我只能得到地图,但无法得到热力图。我遇到问题的部分原因可能是Ramnath原始代码使用rMaps,而我正在使用rCharts(也是由Ramnath开发),因为它更为完善/与shiny更好地集成,当然包括Leaflet。我尝试使用rMaps和闪亮HTML通用命令
这是不起作用的闪亮代码(它只显示地图,而忽略了热点库):
然而,当我尝试在闪亮中使用Ramnath的代码时,我只能得到地图,但无法得到热力图。我遇到问题的部分原因可能是Ramnath原始代码使用rMaps,而我正在使用rCharts(也是由Ramnath开发),因为它更为完善/与shiny更好地集成,当然包括Leaflet。我尝试使用rMaps和闪亮HTML通用命令
renderUI
和htmlOutput
,但没有成功。这是不起作用的闪亮代码(它只显示地图,而忽略了热点库):
library(rCharts)
library(shiny)
runApp(
list(ui = (pageWithSidebar(
headerPanel("Heatmap"),
sidebarPanel( width=2),
mainPanel(
mapOutput("leafmap")
)
)),
server = function(input, output) {
output$leafmap <- renderMap({
L2 <- Leaflet$new()
L2$setView(c(29.7632836, -95.3632715), 10)
L2$tileLayer(provider = "MapQuestOpen.OSM")
data(crime, package = 'ggmap')
library(plyr)
crime_dat = ddply(crime, .(lat, lon), summarise, count = length(address))
crime_dat = toJSONArray2(na.omit(crime_dat), json = F, names = F)
L2$addAssets(jshead = c(
"http://leaflet.github.io/Leaflet.heat/dist/leaflet-heat.js"
))
L2$setTemplate(afterScript = sprintf("
<script>
var addressPoints = %s
var heat = L.heatLayer(addressPoints).addTo(map)
</script>
", rjson::toJSON(crime_dat)
))
L2
})
}
))