2015-12-02 89 views
0

此時我正在試驗閱讀GPX文件,到目前爲止,我已經從我的運動跟蹤器應用程序導出了運行,並且我已經設法正確加載這些文件並將它們繪製在地圖上。下標越界 - 加載.gpx文件

現在,我已經在我的應用程序繪製一條新的路徑,並出口到.GPX文件這一點,但是當我嘗試在RI加載此得到以下錯誤:

Error in nm[[1]] : subscript out of bounds

R代碼裏面:

library(plotKML) 
library(leaflet) 
route <- readGPX("../GPS data Serge/Testing.gpx", tracks = TRUE) 

Testing.gpx文件:

<?xml version="1.0" encoding="UTF-8"?> 
<gpx version="1.1" creator="Endomondo.com" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd" xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <metadata> 
    <author> 
     <name>Wouter Baeckelmans</name> 
    </author> 
    <link href="http://www.endomondo.com"> 
     <text>Endomondo</text> 
    </link> 
    <time>2015-12-02T15:53:31Z</time> 
    </metadata> 
    <trk> 
    <name>Test</name> 
    <src>http://www.endomondo.com/</src> 
    <link href="https://www.endomondo.com/routes/639589549"> 
     <text>Test</text> 
    </link> 
    <type>RUNNING</type> 
    <trkseg> 
     <trkpt lat="8.39087" lon="-12.94756"/> 
     <trkpt lat="8.39022" lon="-12.94777"/> 
     <trkpt lat="8.38974" lon="-12.94861"/> 
     <trkpt lat="8.38307" lon="-12.94227"/> 
     <trkpt lat="8.38248" lon="-12.94181"/> 
     <trkpt lat="8.3822" lon="-12.94171"/> 
     <trkpt lat="8.38104" lon="-12.94155"/> 
     <trkpt lat="8.3765" lon="-12.94101"/> 
     <trkpt lat="8.37593" lon="-12.94086"/> 
     <trkpt lat="8.37556" lon="-12.94065"/> 
     <trkpt lat="8.37522" lon="-12.9404"/> 
     <trkpt lat="8.3742" lon="-12.93948"/> 
     <trkpt lat="8.37367" lon="-12.93893"/> 
     <trkpt lat="8.37305" lon="-12.93819"/> 
    </trkseg> 
    </trk> 
</gpx> 

任何想法是什麼可能導致此?我注意到這個.gpx文件看起來不同於我可以成功加載的其他.gpx文件。該文件包含每個trkpt標記的trkseg標記... 但我認爲應該有可能加載此文件以及我似乎沒有找到如何。

對此非常感謝!

+0

請參見[如何做一個偉大的[R重複的例子(http://stackoverflow.com/問題/ 5963269 /如何對做 - 一個偉大-R重現-例子)。完整的數據和(對於那些不知道你可能使用'plotKML'包的人)最小的工作代碼將會有所幫助。我看不出我們如何幫助完整的數據文件。 – hrbrmstr

回答

1

rgdal包裝中試過readOGR

> route = readOGR("Testing.gpx","tracks") 
OGR data source with driver: GPX 
Source: "Testing.gpx", layer: "tracks" 
with 1 features 
It has 12 fields 
> plot(route) 

它就在那裏。

route現在是SpatialLinesDataFrame,所以請閱讀sp包,瞭解您可以使用它做什麼。 SpatialLinesDataFrame特徵可以是複雜的東西,比如整個分支河系,因此對原始座標的訪問可能相應地變得複雜。如果你知道你的數據是一個簡單的單行線,那麼你可以得到的座標爲2列的矩陣:

> coordinates(route)[[1]][[1]] 
      [,1] [,2] 
[1,] -12.94756 8.39087 
[2,] -12.94777 8.39022 
[3,] -12.94861 8.38974 
[4,] -12.94227 8.38307 
[5,] -12.94181 8.38248 
[6,] -12.94171 8.38220 
[7,] -12.94155 8.38104 
[8,] -12.94101 8.37650 
[9,] -12.94086 8.37593 
[10,] -12.94065 8.37556 
[11,] -12.94040 8.37522 
[12,] -12.93948 8.37420 
[13,] -12.93893 8.37367 
[14,] -12.93819 8.37305 

這是因爲你有一個特點,在功能一行。

望着readGPX代碼,我懷疑其處理在GPX文件名中的錯誤....

+0

謝謝,我設法加載這樣的文件,並繪製它!你對如何從路由對象中提取緯度和經度coördinates有任何想法嗎?沒關係,似乎從ggplot2軟件包中工作...感謝您的幫助! – wbaeckelmans