gpt4 book ai didi

javascript - 奇怪的行为传单和 Shiny

转载 作者:行者123 更新时间:2023-12-03 09:06:17 25 4
gpt4 key购买 nike

我有一个 Shiny 的应用程序,它使用传单库。我现在需要使用 get.Bounds() 函数来获取一些坐标。足够简单(js 文件):

var myBounds = map.getBounds();
console.log(myBounds);

然后我需要将坐标发送到shiny以进行进一步处理(也在我的js文件中:

Shiny.onInputChange("bounds", myBounds);

要查看这是否有效,它在 server.R 中执行了以下操作:

observe({
print(input$bounds)
})

但是,当我在 R 控制台中运行应用程序时,会出现 NULL。通过我的 .js 文件 中的 console.log,坐标将打印在 Firefox 控制台中。

但是,它时不时地起作用。当我运行 Shiny 应用程序十次时,它有时可以运行三次,有时可以运行四次,有时则不能运行。我获得坐标并将它们打印到 R 控制台中。

我也尝试过使用reactive,但这并不能解决问题。这里的行为相同。

#get extensions of map
myBoundsR <- reactive({
input$bounds
})
#print extensions
observe(print(myBoundsR()))

这是为什么?!为什么行为如此不合逻辑?为什么 Shiny.onInputChange("bounds", myBounds); 行不将坐标发送到 server.R

最佳答案

您可能想像这样更改它:

 map.on('moveend', function(e) {
var myBounds = map.getBounds();
Shiny.onInputChange("bounds", myBounds);
console.log(myBounds);
});

可能是“起始窗口”没有发送窗口扩展的问题?!但这只是一个猜测。我找不到任何相关内容。由于 js 从上到下只执行一次,因此代码只执行一次。这样写,当你平移/缩放时应该可以工作吗?!

请告诉我这是否对您有帮助!

关于javascript - 奇怪的行为传单和 Shiny ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32180430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com