R中的传单包未从GPX文件绘制所有坐标

R中的传单包未从GPX文件绘制所有坐标,r,leaflet,gpx,R,Leaflet,Gpx,我一直在绘制徒步旅行路线的GPX数据。我可以下载并提取所有管线数据,但当我将它们打印为多段线时,它只打印一小段。我已经通过运行一个函数来确认该文件是完整的,该函数中断了GPX文件,创建了lat和lon的数据帧,并将它们绘制为标记或圆标记。这对于我正在处理的文件来说非常慢 代码如下: library(rgdal) library(maps) library(htmltools) library(devtools) library(leaflet) library(sp) library(htmlw

我一直在绘制徒步旅行路线的GPX数据。我可以下载并提取所有管线数据,但当我将它们打印为多段线时,它只打印一小段。我已经通过运行一个函数来确认该文件是完整的,该函数中断了GPX文件,创建了lat和lon的数据帧,并将它们绘制为标记或圆标记。这对于我正在处理的文件来说非常慢

代码如下:

library(rgdal)
library(maps)
library(htmltools)
library(devtools)
library(leaflet)
library(sp)
library(htmlwidgets)
library(plotKML)
library(maptools)
library(XML)

url <- "http://hiking.waymarkedtrails.org/en/routebrowser/1225378/gpx"
download.file(url, destfile = "pct.gpx", method = "wininet")

pct <- readOGR("pct.gpx", layer = "tracks")

# Import list with shapefiles of the three states the PCT is crossing
mapStates <- map("state", fill = TRUE,
                 plot = FALSE,
                 region = c('california', 'oregon', 'washington:main'))

your.map <- leaflet(pct) %>%

 # Add layer
  addTiles(urlTemplate = "http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png") %>%
  addPolylines(color="red", popup="PCT")  %>%
  addMarkers(-116.4697, 32.60758, popup = "Campo") %>%
  addMarkers(-120.7816, 49.06465, popup = "Manning Park, Canada") %>%
  addPolygons(data=mapStates, fillColor = heat.colors(3, alpha = NULL), stroke = FALSE) %>%

  # Add legend
  addLegend(position = 'topright', colors = "red", labels = "PCT", opacity = 0.4,
            title = 'Legend')
your.map
库(rgdal)
图书馆(地图)
图书馆(htmltools)
图书馆(devtools)
图书馆(单张)
图书馆(sp)
库(htmlwidgets)
图书馆(KML)
图书馆(地图工具)
库(XML)
url%
addMarkers(-120.7816,49.06465,popup=“加拿大曼宁公园”)%>%
addPolygons(数据=MapState,fillColor=heat.Color(3,alpha=NULL),笔划=FALSE)%>%
#添加图例
添加图例(位置='topright',颜色='red',标签='PCT',不透明度=0.4,
标题=‘图例’)
你的地图
这段代码有效,你得到一张地图,正确着色,标记在正确的位置


但是,仅绘制一条小线段。通过查看
pct
对象,我可以看到GPX文件中有12行,但似乎只有一行。无论我下载哪个GPX文件,都是同一个问题。

这可能与传单中的错误有关。github上已经存在一个问题,请参阅

mapview中,我们已修复此问题,并且正确绘制了多行。参见问题对话

作为一个可复制的示例(摘自地图视图):

或者以你为例,简单地说

your.map <- mapview(pct, map.types = "CartoDB.Positron")@map %>% 
  addMarkers(-116.4697, 32.60758, popup = "Campo") %>%
  addMarkers(-120.7816, 49.06465, popup = "Manning Park, Canada") %>%
  addPolygons(data=mapStates, fillColor = heat.colors(3, alpha = NULL), stroke = FALSE) %>%

  # Add legend
  addLegend(position = 'topright', colors = "red", labels = "PCT", opacity = 0.4,
            title = 'Legend')

your.map
your.map%
addMarkers(-116.4697,32.60758,popup=“Campo”)%>%
addMarkers(-120.7816,49.06465,popup=“加拿大曼宁公园”)%>%
addPolygons(数据=MapState,fillColor=heat.Color(3,alpha=NULL),笔划=FALSE)%>%
#添加图例
添加图例(位置='topright',颜色='red',标签='PCT',不透明度=0.4,
标题=‘图例’)
你的地图

注意:这目前仅在mapview的开发版本中修复,该版本可以与
devtools::install\u github(“environmentalinformatics marburg/mapview”,ref=“develope”)

一起安装(“environmentalinformatics marburg/mapview”),是否可能有12行代码紧跟在后面?运行plot(pct),您将看到一条接一条地绘制的线条形成一条大线条No,因为它们的长度不同,当我将它们全部解包时,我可以将它们绘制为圆形或标记,它们反映了所需的结果,但它比线条慢得多,数据密集。谢谢@TimSalbim。我怀疑这是一个传单bug,它可能依赖于操作系统(我使用的是Windows)。基本上,我是从这个复制代码。它显示了成功的绘图,我正在复制代码和数据。我不确定这是否是操作系统的问题。在Ubuntu 10.04上,我也有同样的问题。我已经更新了我的答案,所以现在看起来应该与你提到的博客文章的版本相似。我在安装时遇到了一个错误,正在寻找一个名为
stringi
的软件包,因此当我运行上面的代码时,它会遍历所有数据,但无法绘制图。而安装
stringi
没有帮助?最初,我收到一个
包'stringi'不存在
错误,但已清除。现在我有一个rJava问题;与i386关联。这是一个单独的问题,我可以解决。谢谢你的帮助。
your.map <- mapview(pct, map.types = "CartoDB.Positron")@map %>% 
  addMarkers(-116.4697, 32.60758, popup = "Campo") %>%
  addMarkers(-120.7816, 49.06465, popup = "Manning Park, Canada") %>%
  addPolygons(data=mapStates, fillColor = heat.colors(3, alpha = NULL), stroke = FALSE) %>%

  # Add legend
  addLegend(position = 'topright', colors = "red", labels = "PCT", opacity = 0.4,
            title = 'Legend')

your.map