我一直在玩mapview包,最近已加载到CRAN上.我一直在玩演示代码并尝试将其嵌入到knitr markdown文档中.不幸的是,当我这样做时,我收到一条错误消息,我无法解释出现了什么问题.
这是错误消息,后面是可重现的示例.请注意,在将代码作为直接R代码运行时,我没有任何问题.只有当它通过knitr运行时才会出现问题.如果mapview
元素被注释掉,则不会发生错误.
我已经更新了所有的软件包,问题仍然存在.以下是一些系统细节:
Windows 7的
R版本3.2.2
R Studio版本0.99.486
mapview版本1.0.0
针织版1.11
pandoc版本1.13.1
pandoc.exe:无法获取C:\ Users\my.name\Documents\R\win-library\3.2\mapview\htmlwidgets\lib\leaflet #default #VML C:\ Users\my.name\Documents\R\win-library\3.2\mapview\htmlwidgets\lib\leaflet:openBinaryFile:不存在(没有这样的文件或目录)错误:pandoc文件转换失败,错误67另外:警告消息:正在运行命令'"C:/ Program Files/RStudio/bin/pandoc/pandoc"+ RTS -K512m -RTS Mapview.utf8.md - to html - from markdown + autolink_bare_uris + ascii_identifiers + tex_math_single_backslash-implicit_figures --output Mapview.html --smart --email-obfuscation none - self-contained --standalone --section-divs --template"C:\ Users\my.name\Documents\R\win-library\3.2\rmarkdown\rmd\h\default.html" - 变量"theme:bootstrap"--include-in-header"C:\ Users\my.name\AppData\Local\Temp\Rtmpw9Mi9D\rmarkdown-str1ee41c515f3f.html"--mathjax --variable"mathjax-url:https:/ /cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML " - no-highlight --variable"h ighlightjs = C:\ Users\my.name\Documents\R\win-library\3.2\rmarkdown\rmd\h\highlight"'has status 67执行暂停
--- title: "Test Mapview" output: html_document --- ```{r} library(ggplot2) library(rgdal) library(mapview) data(diamonds) ### blow diamonds up a bit big <- diamonds[rep(seq_len(nrow(diamonds)), 1), ] big$cut <- as.character(big$cut) big$color <- as.character(big$color) big$clarity <- as.character(big$clarity) ### provide some random positions big$x <- rnorm(nrow(big), 0, 10) big$y <- rnorm(nrow(big), 0, 10) coordinates(big) <- ~x+y proj4string(big) <- CRS("+init=epsg:4326") ### view it mapview(big) ```
TimSalabim.. 5
到目前为止,mapview中没有对knitr的支持.也就是说,可以通过显式调用mapview(x)@map来嵌入"小"数据集.x是一个Spatial*对象,多边形和直线的特征少于30000,点的特征少于20000.这些数字是mapviewOptions()中设置的默认限制,用于使用传单包呈现输出.对于具有比这些阈值更多的特征的数据集,我们使用特殊函数mapview ::: fpView()用于点和mapview ::: bView()用于多边形和线.对于这些专业功能,目前不存在编织器支持.
这意味着您使用knitr嵌入较大数据集的唯一选择是将"maxlines","maxpoints"或"maxpolygons"的阈值设置为适当的数字(高于数字要素),以便使用传单包完成渲染功能.但是你需要记住,传单可能不再适用于大型数据集(或完全崩溃).
所以,对于上面的例子:
--- title: "Test Mapview" output: html_document --- ```{r} library(ggplot2) library(rgdal) library(mapview) mapviewOptions(maxpoints = 55000) # diamonds has some 53000 rows data(diamonds) ### blow diamonds up a bit big <- diamonds[rep(seq_len(nrow(diamonds)), 1), ] big$cut <- as.character(big$cut) big$color <- as.character(big$color) big$clarity <- as.character(big$clarity) ### provide some random positions big$x <- rnorm(nrow(big), 0, 10) big$y <- rnorm(nrow(big), 0, 10) coordinates(big) <- ~x+y proj4string(big) <- CRS("+init=epsg:4326") ### view it mapview(big)@map ```
应该生成一个显示带有点的地图的文档,但正如我所说,请注意这可能超出了传单包的功能.
另外,我想在此提出另一点.knitr是否是为这样的大数据集创建html文件的合适方式,这一点值得怀疑.knitr将所有内容(几何和属性)存储在一个html文件中,这个文件可能会很快变得非常大并且变得反应迟钝.
因此,对于这样的大数据而言,闪亮的解决方案可能是更好的选择.
到目前为止,我们的重点是获得对大数据集的支持在查看器/浏览器中正常工作.knitr集成有望在某个阶段实现,但可能需要一些时间才能正确完成.
希望这澄清,最好蒂姆
到目前为止,mapview中没有对knitr的支持.也就是说,可以通过显式调用mapview(x)@map来嵌入"小"数据集.x是一个Spatial*对象,多边形和直线的特征少于30000,点的特征少于20000.这些数字是mapviewOptions()中设置的默认限制,用于使用传单包呈现输出.对于具有比这些阈值更多的特征的数据集,我们使用特殊函数mapview ::: fpView()用于点和mapview ::: bView()用于多边形和线.对于这些专业功能,目前不存在编织器支持.
这意味着您使用knitr嵌入较大数据集的唯一选择是将"maxlines","maxpoints"或"maxpolygons"的阈值设置为适当的数字(高于数字要素),以便使用传单包完成渲染功能.但是你需要记住,传单可能不再适用于大型数据集(或完全崩溃).
所以,对于上面的例子:
--- title: "Test Mapview" output: html_document --- ```{r} library(ggplot2) library(rgdal) library(mapview) mapviewOptions(maxpoints = 55000) # diamonds has some 53000 rows data(diamonds) ### blow diamonds up a bit big <- diamonds[rep(seq_len(nrow(diamonds)), 1), ] big$cut <- as.character(big$cut) big$color <- as.character(big$color) big$clarity <- as.character(big$clarity) ### provide some random positions big$x <- rnorm(nrow(big), 0, 10) big$y <- rnorm(nrow(big), 0, 10) coordinates(big) <- ~x+y proj4string(big) <- CRS("+init=epsg:4326") ### view it mapview(big)@map ```
应该生成一个显示带有点的地图的文档,但正如我所说,请注意这可能超出了传单包的功能.
另外,我想在此提出另一点.knitr是否是为这样的大数据集创建html文件的合适方式,这一点值得怀疑.knitr将所有内容(几何和属性)存储在一个html文件中,这个文件可能会很快变得非常大并且变得反应迟钝.
因此,对于这样的大数据而言,闪亮的解决方案可能是更好的选择.
到目前为止,我们的重点是获得对大数据集的支持在查看器/浏览器中正常工作.knitr集成有望在某个阶段实现,但可能需要一些时间才能正确完成.
希望这澄清,最好蒂姆