Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将传单地图从R输出为可以使用传单命令进行编辑的格式?_Javascript_Html_R_Maps_Leaflet - Fatal编程技术网

Javascript 如何将传单地图从R输出为可以使用传单命令进行编辑的格式?

Javascript 如何将传单地图从R输出为可以使用传单命令进行编辑的格式?,javascript,html,r,maps,leaflet,Javascript,Html,R,Maps,Leaflet,我有一些使用R进行数据处理和使用GIS软件制作地图的经验,所以我尝试使用R的传单包制作我的第一张传单地图。利用教程,我已经能够很好地做到这一点,但我想对我的最终地图进行一些调整,这些调整似乎可以使用“常规传单”,而不是R包(仅在自定义地图窗格中使用标签的平铺层,以便地理标签显示在我的多边形上方,等等)。这很好,只是我无法确定在地图的输出文件中,我可以使用传单语法进行必要的编辑 我正在使用以下代码导出地图: 我不太熟悉HTML输出;我在QGIS中制作了地图,这些地图被导出到HTML文件中,但我从来

我有一些使用R进行数据处理和使用GIS软件制作地图的经验,所以我尝试使用R的传单包制作我的第一张传单地图。利用教程,我已经能够很好地做到这一点,但我想对我的最终地图进行一些调整,这些调整似乎可以使用“常规传单”,而不是R包(仅在自定义地图窗格中使用标签的平铺层,以便地理标签显示在我的多边形上方,等等)。这很好,只是我无法确定在地图的输出文件中,我可以使用传单语法进行必要的编辑

我正在使用以下代码导出地图:

我不太熟悉HTML输出;我在QGIS中制作了地图,这些地图被导出到HTML文件中,但我从来不需要编辑源代码。我正在寻找一个可以添加传单命令的文件。index.html文件似乎是唯一包含特定于我的地图的信息的文件,其他文件包含index.html文件为显示地图而引用的代码。我认为这将是使用传单命令编辑代码的地方,但它与我所看到的传单映射代码示例完全不同。我没有在这里包含完整的index.html文件,因为它太长了,但它看起来一点也不像传单脚本。没有
var=
L.tillelayer、L.polygon
等。我看不到地图对象,只看到坐标

我假设的情况是,当我使用HTML小部件输出传单映射时,R被翻译成传单,然后被翻译成基本Javascript,我在index.HTML文件中看到。首先,我想知道这是否准确

如果它是准确的,我的问题是:有没有一种方法可以将地图从R输出到传单命令中,而不仅仅是Javascript

如果不准确,我的问题是:我可以使用传单编辑我现在在地图输出文件夹中的文件吗?(我可能误解了它是一个自定义命令库,与典型的Javascript不同,对吧?)

如果这是一个非常基本的问题,我提前表示歉意,我肯定是这里的新手

编辑:这是我的地图的HTML文件的图像。我假设这都是基本的Javascript(或者甚至是简化的Javascript?),如果我想进一步调整映射,我必须在这里引用传单源代码。除非有办法在第一个回复中提到的htmlwidgets::onRender命令中引用传单库,然后我可以在传单中编写


实际上,
传单
htmlwidget实现了您在引擎盖下描述的功能。 它不使用直接传单命令,而是使用定义的方法来操作地图,如下面的屏幕截图所示

从R打来的电话 来自R的调用存储在
map$x$calls
上。让我们使用
?传单
中的一些代码快速绘制地图,这样我们就可以看到发生了什么

# from ?leaflet
library(leaflet)

rand_lng = function(n = 10) rnorm(n, -93.65, .01)
rand_lat = function(n = 10) rnorm(n, 42.0285, .01)

m = leaflet() %>%
  addTiles() %>%
  fitBounds(0, 40, 10, 50) %>%
  setView(-93.65, 42.0285, zoom = 17) %>% 
  addPopups(
    -93.65, 42.0285, 'Here is the <b>Department of Statistics</b>, ISU'
  ) %>%
  clearBounds()

m$x$calls
如果在浏览器中打开地图并使用开发人员工具(ctrl+shift+i)进行检查,您将看到传单地图可供进一步操作

跟进
我希望这有帮助。如果您还有更多问题,请告诉我,我很乐意帮助您解答。

谢谢!这很有帮助。我看到的控制台日志与您包含的屏幕截图类似,但我认为这是一个摘要空间,而不是编辑文件的地方。我将HTML文件视为编辑地图的空间,但我很难遵循它的逻辑。我认为我缺乏Javascript素养是现在的问题。看起来我不能在htmlwidgets::onrender或HTML文件中使用传单命令,我要进行的编辑代码都是传单命令。我正在浏览传单源代码,但最好是直接在传单中制作地图,而不是R包。
# from ?leaflet
library(leaflet)

rand_lng = function(n = 10) rnorm(n, -93.65, .01)
rand_lat = function(n = 10) rnorm(n, 42.0285, .01)

m = leaflet() %>%
  addTiles() %>%
  fitBounds(0, 40, 10, 50) %>%
  setView(-93.65, 42.0285, zoom = 17) %>% 
  addPopups(
    -93.65, 42.0285, 'Here is the <b>Department of Statistics</b>, ISU'
  ) %>%
  clearBounds()

m$x$calls
htmlwidgets::onRender(
  m,
  "
  function(el, x, data) {
    // our leaflet map is available as this
    console.log(this);
  }
  "
)